CentOS root 用户 crontab 用于 mysqldump

CentOS root 用户 crontab 用于 mysqldump

我正在使用 CentOS 6.6。我正在尝试设置 crontab。我制作了一个 .sh 脚本,手动执行时可以完美运行。命令如下:

mysqldump --skip-lock-tables --single-transaction --hex-blob --flush-logs --master-data=2 -u root -p'password' database1 > database2.sql

但是,当我尝试在 /etc/crontab 文件中进行设置时,它却无法运行。以下是 crontab 文件的内容。

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

# 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
* * * * * root /home/user/public_html/default1.sh

另外,我希望这个脚本在目录中执行

/home/user/public_html

我的脚本叫做default1.sh,我把它放在/home/user/public_html目录中。

我的目标是每分钟以 root 用户身份在 /home/user/public_html 中执行此命令(或现在是 default1.sh 脚本)。

答案1

您需要检查以下几件事:

  1. 确保您的脚本具有适当的权限。您需要有一个x(至少对于用户而言)可执行的权限。
  2. 确保mysqldump在 crontab 内PATH。否则,请在脚本中指定绝对路径。
  3. 我建议指定输出文件的绝对路径以确认它是否生成成功。否则,您可能会对文件位置感到困惑。

答案2

另外,-u root 语法错误。据我所知应该是 -uroot。

无论如何,尝试通过添加来记录你的 cron 条目

>> /somefile.log 2>&1

到 cron 行

相关内容