【问题标题】:PHP Exec Cron Job returns unexpected EOFPHP Exec Cron 作业返回意外的 EOF
【发布时间】:2018-09-15 16:25:36
【问题描述】:

我正在尝试在 cron 作业期间运行 php 脚本,以将我的 MySQL 数据库转储到一个文件夹以进行备份。

$DBHost = 'localhost';
$DBName = 'mydatabase';
$DBUser = 'myuser';
$DBPassword = 'mypassword';
    
$PATH = "/home/mysite/Backups/";
$FILE_NAME = "backup-" . date( "Y-m-d_H:i:s" ) . ".sql.gz";
exec( '/usr/local/bin/mysqldump -u ' . $DBName . ' -p' . $DBPassword . ' ' . $DBName . ' | gzip --best > ' . $PATH . $FILE_NAME );
        
        
        

但我不断收到错误消息:

sh: -c: line 0: 在寻找匹配的 `)' 时出现意外的 EOF

sh: -c: line 1: 语法错误:文件意外结束

我检查了所有) 并找不到任何不匹配的。 如果我注释掉 exec 命令,则不会收到错误消息。

有人知道我做错了吗?

【问题讨论】:

    标签: php mysql exec


    【解决方案1】:

    为什么不在 sh 中写完整的代码呢?

    #!/bin/bash 
    dbname="database"
    dbuser="user"
    dbpass="password"
    
    path="/home/backup"
    
    now=$(date + "%Y-%m-%d")
    
    /usr/bin/mysqldump -u $dbuser -p$dbpass $dbname | gzip > $path/backup_$now.sql.gz
    

    另存为例如备份.sh,

    然后使用 crontab -e 添加新的 cron 作业(例如每天 2:15)

    15 2 * * * /home/backup/backup.sh
    

    【讨论】:

      猜你喜欢
      • 2013-07-13
      • 2020-04-21
      • 2016-05-27
      • 2017-05-24
      • 2017-04-29
      • 2012-06-25
      • 2013-01-06
      • 2022-01-04
      • 1970-01-01
      相关资源
      最近更新 更多