私はDebian 8システムでPHP 5.6を実行しているので、セッションデータをクリーンアップするためにrootとしてcronjobを実行しています。
09,39 * * * * root [ -x /usr/lib/php5/sessionclean ] && /usr/lib/php5/sessionclean
私は先週、次の電子メールを受け取るまでこのcronjobがあることを知りませんでした。
/bin/sh: 1: root: not found
上記のコマンドを実行しようとすると、「-x」で始まるコマンドは失敗します。
-bash: -x: command not found
-x とはどういう意味ですか?
[ -x /usr/lib/php5/sessionclean ]
意味は?このエラー/電子メールを受け取る理由はわかりますか?
答え1
システム全体のcrontabを使用しないと、ユーザーフィールドはありません/etc/crontab
。
サンプルユーザーcrontabファイル:
# Edit this file to introduce tasks to be run by cron.
...
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
ご覧のとおり、フィールドuser
がありません。
-x
ファイルが/usr/lib/php5/sessionclean
存在し実行可能かどうかをテストします。ユーザー名フィールドがない場合は、次のように作成することもできます。
09,39 * * * * test -x /usr/lib/php5/sessionclean && /usr/lib/php5/sessionclean
しかし、あなたのバージョンはユーザー名フィールドなしでうまく機能します。