web-dev-qa-db-ja.com

cronエラーgetpwnam()がDBバックアップに失敗しました

PHPを使用してcronジョブを実装する方法を学習しようとしています。

cronは/etc/crontab

 * 13 * * * /usr/bin/php /var/www/path/to/file/database-bkup-test.php &>/tmp/mycroncommand.log

したがって、これは毎日13時間(午後1時)に実行する必要があります

サービスのステータスを

Sudo systemctl status crond.service -l

次のエラーが見つかりました:

(/ usr/bin/php)エラー(getpwnam()が失敗しました)

私はこれをPHPを使用して設定しました。スクリプトは基本的に次のとおりです。

$today = date('Y-m-d');
$user = 'db_user';
$password = 'db_password'; 
$Host = '127.0.0.1'; //this is actually replaced with an address to another remote server
$port='3306';
$database='database_name';

exec('mysqldump --user='.$user.' --password='.$password.' --Host='.$Host.' --port='.$port.' '.$database.' > /db-bkup/db-'.$today.'.sql');

最終結果は、ファイルへのデータベースダンプになります。

db-2017-03-24.sql

誰か助けてくれませんか?

私はこれを読んで実装しようとすることに時間を費やしてきました。 私はこの投稿がとても役に立ったと思いました

ジョブが失敗しているため、すべてが/tmp

更新

「Hello World」をエコーする簡単なcronを追加しました。

*/2 * * * * root /scripts/test.php&>/tmp/mycrontest.log

今回は、Permission Deniedで生成されたログがあります。私は/ usr/bin/phpを適用したことがないためだと思います

これは、元のエラーからの前進です。

3
mcv

問題の解決を支援してくださった上記 Conn Warwicker に感謝します。

Cronジョブからユーザーrootを省略しました。

 * 13 * * * root /usr/bin/php /var/www/path/to/file/database-bkup-test.php &>/tmp/mycroncommand.log
6
mcv