使用Bash安排Cron

时间:2012-11-16 23:36:10

标签: bash shell cron

这是我想要运行的命令:

00 03 * * * backup.sh

据我所知,这将在每天凌晨3点运行脚本backup.sh。如何使用bash脚本在我的linux服务器上添加此cron命令?

4 个答案:

答案 0 :(得分:2)

  

如何使用bash脚本在我的linux服务器上添加此cron命令?

如果您想以root身份运行此 ,可以将文件放在名为/etc/cron.d的{​​{1}}中,其中包含以下内容:

backup

这假定00 03 * * * root backup.sh 在标准backup.sh中,您可能希望在此处使用完全限定的路径,而不是依赖PATH

PATH

在许多发行版中,您还可以将00 03 * * * root /path/to/bin/backup.sh 脚本(可能通过符号链接)放入类似backup.sh的内容中,并且每晚都会运行。这通常比编写自己的crontab条目更简单,更易于维护。

如果您想以用户的身份运行此,则可以运行...

/etc/cron.daily

...编辑自己的crontab文件并在其中添加条目:

crontab -e

请注意,我们无需指定用户名(仅在00 03 * * * /path/to/bin/backup.sh /etc/cron.d和其他全球系统位置中使用。

答案 1 :(得分:1)

以root身份:

echo "00 03 * * * root backup.sh" >>/etc/crontab

echo "00 03 * * * root backup.sh" >/etc/cron.d/mybackupjob

作为您自己的用户:

crontab -l >tmp; echo "00 03 * * * backup.sh" >>tmp; crontab tmp; rm tmp

答案 2 :(得分:0)

你知道/etc/cron.d目录,对吗?如果没有,请键入“man cron”。

答案 3 :(得分:0)

crontab -e将尝试调用您的EDITOR,因此您的第一个脚本可以将其设置为第二个脚本,该脚本只需将相关行附加到crontab:

#!/bin/sh
EDITOR=/path/to/second/script crontab -e

第二个脚本:

#!/bin/sh
echo "00 03 * * * /path/to/bin/backup.sh" >> $1