【发布时间】:2012-11-16 23:36:09
【问题描述】:
这是我要运行的命令:
00 03 * * * backup.sh
我知道这将在每天凌晨 3 点运行脚本 backup.sh。如何使用 bash 脚本在我的 linux 服务器上添加这个 cron 命令?
【问题讨论】:
这是我要运行的命令:
00 03 * * * backup.sh
我知道这将在每天凌晨 3 点运行脚本 backup.sh。如何使用 bash 脚本在我的 linux 服务器上添加这个 cron 命令?
【问题讨论】:
如何使用 bash 脚本在我的 linux 服务器上添加这个 cron 命令?
如果您想以 root 身份运行此,您可以在 /etc/cron.d 中放置一个名为 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 和其他全局系统位置需要。
【讨论】:
crontab -e 调出一个编辑器。您输入该行并保存文件并退出编辑器,这将激活您的新 crontab 文件。您也可以键入 crontab /path/to/your/crontab 从现有文件安装 crontab,而不是使用您的编辑器。另外,man crontab 和 man 5 crontab。
作为根:
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
【讨论】:
您知道 /etc/cron.d 目录,对吧?如果没有,请输入“man cron”。
【讨论】:
crontab -e 将尝试调用您的 EDITOR,因此您的第一个脚本可以将其设置为第二个脚本,该脚本只需将相关行附加到 crontab:
#!/bin/sh
EDITOR=/path/to/second/script crontab -e
第二个脚本:
#!/bin/sh
echo "00 03 * * * /path/to/bin/backup.sh" >> $1
【讨论】: