2

这是我要运行的命令:

00 03 * * * backup.sh

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

4

4 回答 4

2

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

如果你想以root身份运行它,你可以在/etc/cron.dnamed中放置一个backup包含以下内容的文件:

00 03 * * * root backup.sh

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

00 03 * * * root /path/to/bin/backup.sh

在许多发行版中,您还可以(可能通过符号链接)将backup.sh脚本放入类似的东西中/etc/cron.daily,它会每晚运行。这通常比编写自己的 crontab 条目更简单、更易于维护。

如果你想以用户身份运行它,你可以运行...

crontab -e

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

00 03 * * * /path/to/bin/backup.sh

请注意,我们不需要指定用户名(这仅在 、 和其他全局系统位置中是必需/etc/cron.d/etc/crontab

于 2012-11-17T00:22:39.417 回答
1

作为根:

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

于 2012-11-17T01:52:23.443 回答
0

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

于 2012-11-17T00:15:11.293 回答
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
于 2012-11-17T00:45:47.967 回答