ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux的定时计划任务-crontab和at

Linux的定时计划任务-crontab和at

原创 Linux操作系统 作者:呱呱牛 时间:2016-05-04 11:42:32 0 删除 编辑
    Linux定时任务分为周期性定时任务和一次性定时任务,周期性定时任务是通过crontab实现,可以在设定的时间点执行系统命令或是shell脚本程序,时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作,需要开启crond守护进程;一次定时任务是通过at命令实现 ,在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd守护进程。我们是rhel7.2系统对这两个系统命令做一下说明
   
    首先,查看守护进程的状态 ,通过systemctl status 守护进程名称,状态是running

点击(此处)折叠或打开

  1. [root@localhost ~]# systemctl status crond
  2. ● crond.service - Command Scheduler
  3. Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
  4. Active: active (running) since Tue 2016-05-03 10:58:09 CST; 24h ago
  5. Main PID: 1833 (crond)
  6. CGroup: /system.slice/crond.service
  7. └─1833 /usr/sbin/crond -n
  8. May 03 10:58:09 localhost.localdomain systemd[1]: Started Command Scheduler.
  9. May 03 10:58:09 localhost.localdomain systemd[1]: Starting Command Scheduler...
  10. May 03 10:58:09 localhost.localdomain crond[1833]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 17% if used.)
  11. May 03 10:58:09 localhost.localdomain crond[1833]: (CRON) INFO (running with inotify support)
  12. [root@localhost ~]# systemctl status atd
  13. ● atd.service - Job spooling tools
  14. Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
  15. Active: active (running) since Tue 2016-05-03 10:58:09 CST; 24h ago
  16. Main PID: 1841 (atd)
  17. CGroup: /system.slice/atd.service
  18. └─1841 /usr/sbin/atd -f
  19. May 03 10:58:09 localhost.localdomain systemd[1]: Started Job spooling tools.
  20. May 03 10:58:09 localhost.localdomain systemd[1]: Starting Job spooling tools...
     crontab命令的文本格式: 第一列是分钟,第二列是小时,第三列是日,第四列时月,第五列是周,第六列是系统运行的命令
点击(此处)折叠或打开
  1. # Example of job definition:
  2. # .---------------- minute (0 - 59)
  3. # | .------------- hour (0 - 23)
  4. # | | .---------- day of month (1 - 31)
  5. # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
  6. # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  7. # | | | | |
  8. # * * * * * user-name command to be executed     
     crontab命令的使用方法

点击(此处)折叠或打开

  1. Usage:
  2. crontab [options] file
  3. crontab [options]
  4. crontab -n [hostname]
  5. Options:
  6. -u define user       #指定crontab运行的用户
  7. -e edit user's crontab      #编辑crontab定时任务
  8. -l list user's crontab      #查看当前定时任务内容
  9. -r delete user's crontab    #删除用户的crontab
  10. -i prompt before deleting
  11. -n set host in cluster to run users' crontabs
  12. -c get host in cluster to run users' crontabs
  13. -s selinux context
  14. -x enable debugging 
   实例1:每天18点和23点之间每隔30分钟重启下sshd服务

点击(此处)折叠或打开

  1. 0,30 18-23 * * * /etc/init.d/sshd  restart
    at命令的文本格式:at  时间点;通过atrm删除一个at定时任务

点击(此处)折叠或打开

  1. Usage: at [-V] [-q x] [-f file] [-mMlbv] timespec ...  #at任务运行命令的时间点
  2. at [-V] [-q x] [-f file] [-mMlbv] -t time
  3. at -c job ...
  4. atq [-V] [-q x]             #查看
  5. at [ -rd ] job ...
  6. atrm [-V] job ...  #删除任务
  7. batch
    实例1:通过at 在11:40 创建文件

点击(此处)折叠或打开

  1. [root@localhost ~]# at 11:40             #时间
  2. at> touch file{1..10}                    #执行的命令
  3. at>
  4. job 1 at Wed May 4 11:40:00 2016
  5. [root@localhost ~]# at -l                #查看at任务
    1       Wed May  4 11:40:00 2016 a root
    [root@localhost ~]# atq 
    1       Wed May  4 11:40:00 2016 a root
    [root@localhost ~]# 

    at命令来产生所要运行的计划任务,并将这个计划任务以文字档的方式写入 /var/spool/at/ 目录内,该工作便能等待 atd 这个服务的取用与运行了
   我们来看下 /var/spool/at/目录,在文件a000020173e406末尾可以看到我们输入的命令行内容 rm file*

点击(此处)折叠或打开

  1. [root@localhost ~]# at 11:50
  2. at> rm file*
  3. at>
  4. job 2 at Wed May 4 11:50:00 2016
  5. [root@localhost ~]# ll /var/spool/at/spool/
  6. total 0
  7. [root@localhost ~]# ll /var/spool/at/
  8. total 4
  9. -rwx------ 1 root root 2945 May 4 11:41 a000020173e406
  10. drwx------. 2 daemon daemon 6 May 4 11:40 spool
  11. [root@localhost ~]# cat /var/spool/at/a000020173e406
  12. #!/bin/sh
  13. # atrun uid=0 gid=0
  14. # mail root 0
  15. umask 22
  16. XDG_SESSION_ID=1; export XDG_SESSION_ID
  17. HOSTNAME=localhost.localdomain; export HOSTNAME
  18. SHELL=/bin/bash; export SHELL
  19. HISTSIZE=1000; export HISTSIZE
  20. SSH_CLIENT=192.168.2.10\ 53028\ 22; export SSH_CLIENT
  21. QTDIR=/usr/lib64/qt-3.3; export QTDIR
  22. QTINC=/usr/lib64/qt-3.3/include; export QTINC
  23. SSH_TTY=/dev/pts/0; export SSH_TTY
  24. QT_GRAPHICSSYSTEM_CHECKED=1; export QT_GRAPHICSSYSTEM_CHECKED
  25. USER=root; export USER
  26. LS_COLORS=rs=0:di=01\;34:ln=01\;36:mh=00:pi=40\;33:so=01\;35:do=01\;35:bd=40\;33\;01:cd=40\;33\;01:or=40\;31\;01:mi=01\;05\;37\;41:su=37\;41:sg=30\;43:ca=30\;41:tw=30\;42:ow=34\;42:st=37\;44:ex=01\;32:\*.tar=01\;31:\*.tgz=01\;31:\*.arc=01\;31:\*.arj=01\;31:\*.taz=01\;31:\*.lha=01\;31:\*.lz4=01\;31:\*.lzh=01\;31:\*.lzma=01\;31:\*.tlz=01\;31:\*.txz=01\;31:\*.tzo=01\;31:\*.t7z=01\;31:\*.zip=01\;31:\*.z=01\;31:\*.Z=01\;31:\*.dz=01\;31:\*.gz=01\;31:\*.lrz=01\;31:\*.lz=01\;31:\*.lzo=01\;31:\*.xz=01\;31:\*.bz2=01\;31:\*.bz=01\;31:\*.tbz=01\;31:\*.tbz2=01\;31:\*.tz=01\;31:\*.deb=01\;31:\*.rpm=01\;31:\*.jar=01\;31:\*.war=01\;31:\*.ear=01\;31:\*.sar=01\;31:\*.rar=01\;31:\*.alz=01\;31:\*.ace=01\;31:\*.zoo=01\;31:\*.cpio=01\;31:\*.7z=01\;31:\*.rz=01\;31:\*.cab=01\;31:\*.jpg=01\;35:\*.jpeg=01\;35:\*.gif=01\;35:\*.bmp=01\;35:\*.pbm=01\;35:\*.pgm=01\;35:\*.ppm=01\;35:\*.tga=01\;35:\*.xbm=01\;35:\*.xpm=01\;35:\*.tif=01\;35:\*.tiff=01\;35:\*.png=01\;35:\*.svg=01\;35:\*.svgz=01\;35:\*.mng=01\;35:\*.pcx=01\;35:\*.mov=01\;35:\*.mpg=01\;35:\*.mpeg=01\;35:\*.m2v=01\;35:\*.mkv=01\;35:\*.webm=01\;35:\*.ogm=01\;35:\*.mp4=01\;35:\*.m4v=01\;35:\*.mp4v=01\;35:\*.vob=01\;35:\*.qt=01\;35:\*.nuv=01\;35:\*.wmv=01\;35:\*.asf=01\;35:\*.rm=01\;35:\*.rmvb=01\;35:\*.flc=01\;35:\*.avi=01\;35:\*.fli=01\;35:\*.flv=01\;35:\*.gl=01\;35:\*.dl=01\;35:\*.xcf=01\;35:\*.xwd=01\;35:\*.yuv=01\;35:\*.cgm=01\;35:\*.emf=01\;35:\*.axv=01\;35:\*.anx=01\;35:\*.ogv=01\;35:\*.ogx=01\;35:\*.aac=01\;36:\*.au=01\;36:\*.flac=01\;36:\*.mid=01\;36:\*.midi=01\;36:\*.mka=01\;36:\*.mp3=01\;36:\*.mpc=01\;36:\*.ogg=01\;36:\*.ra=01\;36:\*.wav=01\;36:\*.axa=01\;36:\*.oga=01\;36:\*.spx=01\;36:\*.xspf=01\;36:; export LS_COLORS
  27. MAIL=/var/spool/mail/root; export MAIL
  28. PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin; export PATH
  29. PWD=/root; export PWD
  30. LANG=en_US.UTF-8; export LANG
  31. KDEDIRS=/usr; export KDEDIRS
  32. HISTCONTROL=ignoredups; export HISTCONTROL
  33. SHLVL=1; export SHLVL
  34. HOME=/root; export HOME
  35. LOGNAME=root; export LOGNAME
  36. QTLIB=/usr/lib64/qt-3.3/lib; export QTLIB
  37. SSH_CONNECTION=192.168.2.10\ 53028\ 192.168.2.163\ 22; export SSH_CONNECTION
  38. LESSOPEN=\|\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN
  39. XDG_RUNTIME_DIR=/run/user/0; export XDG_RUNTIME_DIR
  40. QT_PLUGIN_PATH=/usr/lib64/kde4/plugins:/usr/lib/kde4/plugins; export QT_PLUGIN_PATH
  41. cd /root || {
  42. echo 'Execution directory inaccessible' >&2
  43. exit 1
  44. }
  45. ${SHELL:-/bin/sh} << 'marcinDELIMITER0a6599c3'
  46. rm file*
  47. marcinDELIMITER0a6599c3
  48. [root@localhost ~]#



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27039319/viewspace-2093305/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-05-29

  • 博文量
    96
  • 访问量
    286917