用crontab定期执行脚本
一个完整的步骤是:
cd /etc/cron.d //此目录下存放的是所有定期执行的cron文件
crontab -e //建立一个新的定时任务
大功告成!
就是这么简单,但我遇到了很多坑啊!
我在task.croon里是这么写的
*/1 * * * * /root/test/time.sh
我翻来覆去地看,和网上写的一样啊,怎么就是不执行呢?md,对的是这么写啊!
*/1 * * * * root /root/test/time.sh
你掉了一个字段啊,root给你吃了吗!你放在/etc/cron.d下面就是要加执行者这个字段的啊!
看看/etc/crontab
# 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
人家指明了要加user-name看到木有啊!!!
我在time.sh里面又是怎么写的呢?
/bin/date
然后我就在电脑前等一分钟等他在终端给我打印了。我刷了会儿知乎,一看电脑,过了2分钟了,看看黑框框,说好的打印呢!!!啥都没有啊!!!
有了就见鬼了,我最近怎么就蠢成这样了呢!!!
这是一个后台任务啊,哪有终端啊,能不能重定向到标准输出呢?它根本没有标准输出你知道不知道,知道不知道!!!
想看结果重定向到文件里去啊!!!
/bin/date >>/tmp/log