Cronで実行されるPHPスクリプトがあります。出力をファイルに保存したいのですが、シェル出力も別のファイルに保存したいと思います。理想的には一行で表示したいです。だから、次のことを試しました。
script "/folder/log/file.errors."`date +"%Y-%m-%d.%H-%M-%S"`".txt" && /usr/bin/php /folder/file.php > "/folder/log/file.php."`date +"%Y-%m-%d.%H-%M-%S"`".txt"
ただし、最初のコマンド(以前&&
)のみが実行されます。同様に、;
代わりに&&
。
これを2つの別々のコマンドで実行すると正常に動作します。
root:~# script "/folder/log/file.errors."`date +"%Y-%m-%d.%H-%M-%S"`".txt"
root:~# /usr/bin/php /folder/file.php > "/folder/log/file.php."`date +"%Y-%m-%d.%H-%M-%S"`".txt"
これら2つのコマンドを1つのコマンド/行にどのように接続できますか?
exit
また、Cronで実行するときは、上記のコードの後にコマンドを実行する必要がありますか?スクリプトファイルに正しく保存しますか?
答え1
terdonの要求に応じて質問に「回答」と表示されるように、このコメントを回答として投稿します。
ロギングに頼るのではなく
script
、特にこれがcron操作で終わる場合は、PHPコードで指定された1つ以上のファイルに出力およびエラーメッセージを送信することを検討してください。これをcronで実行すると、>/dev/null 2>&1
ディレクティブのようなものとして送信しない限り、セッションログが生成されます。したがって、デバッグツールを使用してcronログを確認できます。