CentOS 7のcrontabの問題 - タスクが処理されない

CentOS 7のcrontabの問題 - タスクが処理されない

したがって、クローンの設定にはいくつかの問題があります。初めて設定するので、間違いだとします。 cronには2つのタスクが設定されています。 1つは毎日午前1時に実行され、もう1つは午前2時に実行されます。これは私の/ etc / crontabです:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

0 1 * * * root /usr/local/mysql/bin/mysqldump -usomeuser -psomepassword --opt zabbix > "/backups/zabbix_mysqldb.sql_$(date +%F_%R)"
0 2 * * * root /usr/bin/sh /zabbix_scripts/mysql_backup_script/zabbix-mysql-dump -p somepassword -o /backups

これが/var/log/cronに見られるものです:

Feb  7 01:00:01 adlmonitor01 CROND[17334]: (root) CMD (/usr/local/mysql/bin/mysqldump -usomeuser -psomepassword --opt zabbix > "/backups/zabbix_mysqldb.sql_$(date +)
Feb  7 01:01:01 adlmonitor01 CROND[17539]: (root) CMD (run-parts /etc/cron.hourly)
Feb  7 01:01:01 adlmonitor01 run-parts(/etc/cron.hourly)[17539]: starting 0anacron
Feb  7 01:01:01 adlmonitor01 anacron[17548]: Anacron started on 2017-02-07
Feb  7 01:01:01 adlmonitor01 anacron[17548]: Normal exit (0 jobs run)
Feb  7 01:01:01 adlmonitor01 run-parts(/etc/cron.hourly)[17550]: finished 0anacron

Feb  7 02:00:01 adlmonitor01 CROND[28788]: (root) CMD (/usr/bin/sh /zabbix_scripts/mysql_backup_script/zabbix-mysql-dump -p somepassword -o /backups)
Feb  7 02:01:01 adlmonitor01 CROND[28992]: (root) CMD (run-parts /etc/cron.hourly)
Feb  7 02:01:01 adlmonitor01 run-parts(/etc/cron.hourly)[28992]: starting 0anacron
Feb  7 02:01:01 adlmonitor01 anacron[29001]: Anacron started on 2017-02-07
Feb  7 02:01:01 adlmonitor01 anacron[29001]: Normal exit (0 jobs run)
Feb  7 02:01:01 adlmonitor01 run-parts(/etc/cron.hourly)[29003]: finished 0anacron

私の考えでは、構文エラーが発生したようですが、どこにあるのかわからないようです。誰かが説明できますか?

ベストアンサー1

作成する長いコマンド呼び出しを置き換えて、同じことを行うスクリプトに出力をリダイレクトしてみてください。

/usr/local/mysql/bin/mysqldump -usomeuser -psomepassword --opt zabbix > "/backups/zabbix_mysqldb.sql_$(date +%F_%R)"

/root/mytestscriptなどのスクリプトファイルを作成して実行可能にし、cronから呼び出します。

0 1 * * * root /root/mytestscript > /root/mytestscript.log 2> /root/mytestscript.err

...または、mytestscript自体の本体に出力とエラーのロギングを含めることをお勧めします。これにより、次のことができます。

0 1 * * * root /root/mytestscript

cronがstdoutとstderrを食べていることがわかります(またはクラシックcronのように郵便あなたの出力)。上記の2つの呼び出し方法のいずれかを使用すると、予測可能な場所ですべてのログを表示できます。

最後に、参考としてスクリプトにパスワードを入力することは安全ではないので、問題を解決するまでこれはすべて一時的な解決策です。努力するhttps://stackoverflow.com/questions/6861355/mysqldump-launched-by-cron-and-password-security/6861458#6861458助けてください。

おすすめ記事