用crontab定期执行脚本

#用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