• 计划任务

    计划任务

    1. 在指定的时间执行命令

      • at - 将任务排队,在指定的时间执行。
      • atq - 查看待执行的任务队列。
      • atrm - 从队列中删除待执行的任务。

      指定3天以后下午5点要执行的任务。

      1. [root ~]# at 5pm+3days
      2. at> rm -f /root/*.html
      3. at> <EOT>
      4. job 9 at Wed Jun 5 17:00:00 2019

      查看待执行的任务队列。

      1. [root ~]# atq
      2. 9 Wed Jun 5 17:00:00 2019 a root

      从队列中删除指定的任务。

      1. [root ~]$ atrm 9
    2. 计划任务表 - crontab

      1. [root ~]# crontab -e
      2. * * * * * echo "hello, world!" >> /root/hello.txt
      3. 59 23 * * * rm -f /root/*.log

      说明:输入crontab -e命令会打开vim来编辑Cron表达式并指定触发的任务,上面我们定制了两个计划任务,一个是每分钟向/root目录下的hello.txt中追加输出hello, world!;另一个是每天23时59分执行删除/root目录下以log为后缀名的文件。如果不知道Cron表达式如何书写,可以参照/etc/crontab文件中的提示(下面会讲到)或者用搜索引擎找一下“Cron表达式在线生成器”来生成Cron表达式。

      和crontab相关的文件在/etc目录下,通过修改/etc目录下的crontab文件也能够定制计划任务。

      1. [root ~]# cd /etc
      2. [root etc]# ls -l | grep cron
      3. -rw-------. 1 root root 541 Aug 3 2017 anacrontab
      4. drwxr-xr-x. 2 root root 4096 Mar 27 11:56 cron.d
      5. drwxr-xr-x. 2 root root 4096 Mar 27 11:51 cron.daily
      6. -rw-------. 1 root root 0 Aug 3 2017 cron.deny
      7. drwxr-xr-x. 2 root root 4096 Mar 27 11:50 cron.hourly
      8. drwxr-xr-x. 2 root root 4096 Jun 10 2014 cron.monthly
      9. -rw-r--r-- 1 root root 493 Jun 23 15:09 crontab
      10. drwxr-xr-x. 2 root root 4096 Jun 10 2014 cron.weekly
      11. [root etc]# vim crontab
      12. 1 SHELL=/bin/bash
      13. 2 PATH=/sbin:/bin:/usr/sbin:/usr/bin
      14. 3 MAILTO=root
      15. 4
      16. 5 # For details see man 4 crontabs
      17. 6
      18. 7 # Example of job definition:
      19. 8 # .---------------- minute (0 - 59)
      20. 9 # | .------------- hour (0 - 23)
      21. 10 # | | .---------- day of month (1 - 31)
      22. 11 # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
      23. 12 # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
      24. 13 # | | | | |
      25. 14 # * * * * * user-name command to be executed