centos7—计划任务(at、cron)

centos7—计划任务(at、cron)

2018-08-08 14:33:17 coisini_覔 阅读数 3751更多

分类专栏: Linux基础 crond/at

版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qq_34889607/article/details/78635141

计划任务:让计算机在指定的时间执行指定的事情
1、分类:一次性计划任务:at(临时的计划任务)
               周期性计划任务:cron
2、计划任务管理:查atq、创建at、删除atrm
      注:服务器重启一般都是晚上   凌晨2点
      at 时间
      atq   或  at  -l    查计划列表
          eg.  at 20:00
                at> poweroff      关机
                at> ctrl+d
3、时间的写法
      HH:MM   //18:30
      midnight   //0点 (午夜)
      noon   //12点 (中午)  
      teatime //16点(下午4点)
      AM  或   PM后缀指定一天的上午或下午。  //at  2:00 pm
      MMDDYY  、  MM/DD/YY 或 DD.MM.YY
      now + 计数  时间单位(minutes  、hours  、  days 或 weeks)
          eg. at now + 3 hours(从现在开始起三个小时后)
          eg. at 4pm  + 3 days   //三天以后的下午4点执行一个任务
               at 2am + tomorrom  //明天上午2点
               at 10am Jul 31   //7月31日上午10点

案例一:凌晨2点备份/etc目录 到 /tmp格式为 etc.tar.xz 
      at 02:00
      at> tar cvJf /tmp/etc.tar.xz /etc
      at> ctrl+d

4、查看所有用户的计划任务
      atq
      at -l
5、查看某个计划任务的详细内容
      at -c 工作号
6、删除计划任务
      atrm 工作号 ...
      at -d 工作号 ...

案例二:脚本方式创建at计划任务.
      echo  ‘ls;date;pwd‘  | at  3:00      #用管道符将任务传给at命令
 案例三:用at将指定文件(-f  文件名)中的命令设为计划任务.
      #首先,创建命令文件
      vim /opt/aplan      #添加如下内容
          ls
          date
          pwd
          tar -czvf /tmp/etc.tar.gz /etc

7、at权限管理、安全
      /etc/at.allow      白名单:只允许在此名单内的用户使用at(此文件本身不存在)
      /etc/at.deny      黑名单:在此名单内的用户不可以使用at
      注:当两个文件都不存在,只有root用户可以使用at
            当两个文件都存在,allow优先执行

-----------------------------------------------------------
at服务管理:
查at软件是否已安装:pm -q at  
查at的文件列表:rpm -ql at
查at的配置文件列表:rpm -qc at
查at服务状态:systemctl status atd   或   service atd status
重启at服务:systemctl restart atd   或   service atd restart
关闭at服务:systemctl stop atd   或   service atd stop
开机不启动at服务:systemctl disable atd   或   chkconfig atd off
开机启动at服务:systemctl enable atd   或   chkconfig atd on

at的其他文件:
计划文件清单:ls   /var/spool/at/*    用cat可以看这些文件
-----------------------------------------------------------

cron:周期性计划任务、循环性计划任务,主要用于备份数据。
      crontab  
      usage:crontab [-u user] [ -e | -l | -r ]
      -u <user>  define user      #指定用户
      -e      edit user‘s crontab      #编辑计划任务
      -l      list user‘s crontab      #查看计划任务
      -r      delete user‘s crontab      #删除计划任务
1、crontab -e      编辑周期性计划任务的内容
2、查看配置:cat   /etc/crontab
时间
min     hour   day  month  week    command
分钟     小时      日      月         周      动作(任务命令)    
0-59     0-23    1-31   1-12   0-7    命令或脚本(写绝对路径)
30         2         1      *       *      rm -rf /tmp/*   //每月1号的2:30分删除/tmp目录下的所有文件
5           *          *       6      3    rm -rf /tmp/*   //每年6月的每周三每小时的5分钟删除/tmp目录下的所有文件
6           6         *       6     6    rm -rf /tmp/*    //每年6月的周六的6点6分钟删除/tmp目录下的所有文件

*  任何时刻
-   一段时间  //  8-11 *  *  *  *   rm -rf /tmp/*    //每小时的8分钟 9分钟 10分钟 11分钟 删除/tmp目录下所有文件     
,  分隔(不连续的时间)       //  1,2,5,9   *  *  *  *   rm -rf /tmp/*  //每小时的1分钟 2分钟 5分钟 9分钟 删除/tmp目录下所有文件     
0-4,8-12    //
0-23/2  时间间隔  //1  0-23/2   *  *   *  rm -rf /tmp/*    // "0,2,4,6,8,10,12,14,16,18,20,22").
*/2    每隔2小时     //1    */2   *  *   *  rm -rf /tmp/*     每隔2小时执行rm命令

*  0-23  *  *  *  rm -rf /tmp/*   
*   */1   *  *  *  rm -rf /tmp/*

3、时间的写法
The time and date fields are:

field          allowed values
      -----          --------------
      minute         0-59
      hour           0-23
      day of month   1-31
      month          1-12  (or  names,
      see below)
      day  of  week    0-7  (0 or 7 is
      Sun, or use names)

案例一:每个星期三的下午10:00备份/etc/目录到/tmp目录叫2017-04-12_etc.tar.gz备份文件包含当天日期
crontab -e
* 22 * * 3 /usr/bin/tar cvzf /tmp/`/usr/bin/date +%F`_etc.tar.gz /etc 
注:`命令`中的``为命令替换功能,系统会先执行``(反撇,反引号)中的命令.也可以将``写成$()
案例二:只保留最近1个月的日志文件
crontab -e
1 * * * *  find /var/log -mtime +30 |xarge -i rm -rf {}
案例三:每月1号的凌晨2点半清空临时盘
crontab -e
30  2  1  *  *  /usr/bin/rm -rf /tmp/* 
案例四:每周每天的晚上8:10关闭电脑,除了星期六,星期五,星期日的17:10关闭电脑
crontab -e
10 20 * * 1-4  /usr/sbin/poweroff
10 17 * * 5,7  /usr/sbin/poweroff
案例五:jim用户每天在家目录创建一个以日期命名的目录20170412
crontab -u jim -e
1  0  *  *  *  /bin/mkdir  /home/jim/`date +%Y%m%d`

4、查询周期性计划任务的内容
      crontab -l      #查看当前用户
      crontab -u jim -      #查看指定用户
5、删除某用户的所有周期性计划任务(删除某个计划任务crontab -e 进入文本删除)
      crontab -r      #当前用户
      crontab -u jim -r      #指定用户

系统定义的计划任务(默认)
      更新whatis数据库
      更新updatedb数据库
      日志定期轮滚(日志切割)
      清理/tmp /var/tmp
      收集系统的状态信息
 
vim /etc/crontab  配置文件        
# For details see man 4 crontabs

# 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  
*/5 * * * *   root  命令   //每隔5分钟以root身份去执行命令

以下目录内可以存在脚本  该脚本就会按照时间去执行
      cd /etc
      cron.hourly/      #每小时
      cron.weekly/      #每周
      cron.daily/      #每天
      cron.monthly/      #每月

6、删除超过一个月不使用的文件
      cat /etc/cron.daily/tmpwatch
7、crontab服务管理:
      查软件是否已安装:rpm  -q  crontabs
      查软件的文件列表:rpm  -ql  crontabs
      查软件的配置文件列表:rpm -qc crontabs
      服务状态:systemctl   status   crond       注:d是daemon守护进程
      重启at服务: systemctl   restart   crond   或  service   crond  restart
      关闭at服务: systemctl   stop   crond   或  service   crond  stop
      开机不启动at服务: systemctl   disable  crond 或 chkconfig   crond  off
      开机启动at服务:  systemctl   enable   crond  或 chkconfig   crond  on
8、cron权限管理
/etc/cron.allow      白名单:只允许在此名单内的用户使用crontab(此文件本身不存在)
/etc/cron.deny      黑名单:在此名单内的用户不可以使用crontab
      注:两个文件都不存在,只有root用户可以使用crontab
             两个文件都存在,allow优先执行

原文地址:https://www.cnblogs.com/xiexun/p/11610777.html

时间: 2024-10-16 00:37:34

centos7—计划任务(at、cron)的相关文章

周期性计划(一个cron守护进程):

周期性计划(一个cron守护进程): [email protected]:/etc# ps -ef | grep cron root 903 1 0 16:25 ? 00:00:00 /usr/sbin/cron -f root 16162 6459 0 22:08 pts/1 00:00:00 grep --color=auto cron cron是一个可以根据时间,日期,月份,星期的组合的周期性执行的守护进程. (可以停掉和重启) [email protected]:/etc# servic

Linux 任务计划 at,cron

linux上的任务计划: 一种是突发性的,就是未来某个时间点一次性执行某任务 相关命令:at , batch 一种是周期性的,就是每个一定的周期执行某任务 相关命令:crontab at 命令:处理仅需要执行一次就结束的任务 at 命令的执行必须要有atd服务的支持,启动atd服务. 注意:centos7 中对于服务的配置有变化,以下命令仅适用7之前版本,这部分正在查资料,很快补充说明. #开启atd服务 [[email protected] ~]# /etc/init.d/atd restar

linux计划任务之cron

目录 cron计划任务之用户级 cron计划任务之用户级 1.安装crond centos7 执行命令: # yum install -y crontabs /bin/systemctl restart crond.service #重启服务 /bin/systemctl status crond.service #查看crontab服务状态 2.crond进程每分钟会处理一次计划任务 ,存储位置在 /var/spool/cron/ 3.管理方式 crontab -l 列出当前用户的计划任务 c

Linux上的计划at和cron

at命令 使用之前确认atd服务已经启动 [[email protected] tmp]# ps -ef | grep atd root     35241     1  0 16:15 ?        00:00:00 /usr/sbin/atd [[email protected] tmp]# /etc/init.d/atd status    #运行状态查看 atd (pid  35241) is running... 启动命令 [[email protected] tmp]# /etc

linux周期性任务计划 at及cron的简单总结

一次性任务计划:at,batch 周期性任务计划:cron at:简单用法 at TIME at> 提交任务:^c+d 作业结果:以邮件形式发送系统上的当前用户 邮件收发: 服务启动与否状态查看命令: netstat -tnl |grep ":25" 默认收发邮件仅在本机上的用户间进行,且只能通过回环接口上的地址进行. # mail q:退出 N:查看第N封邮件 发邮件给指定用户(系统内): # mail USERNAME[@HOSTNAME] -s "SUBJECT&

概论:任务计划at与cron

任务计划 指定一个未来的某个时间点执行任务有三种方式 at:一次性任务. cron:周期性任务. at使用介绍 查看目前状态 CentOS 6:service atd status ##目前启动状态 CentOS 6:chkconfig --list atd ##是否开机启动 CentOS 7:systemctl is-enabled atd.service ##查看是否开机启动 CentOS 7:systemctl statemctl atd.service   ##现在是否启动状态 使用方法

Linux 中怎么设置计划任务:cron 与 anacron

导读 在本篇中,我们会解释 cron 和 anacron,并向你展示如何在 Linux 中设置 anacron.我们也会比较这两个工具. cron 在 Linux 设置 cron - 是一个用于运行计划任务如系统备份.更新等的守护进程.它适合在那些 24X7 不间断运行的机器如服务器上运行的计划任务. 命令/脚本被写在 cron 任务脚本中,它是在crontab 文件中被安排的.系统默认的 cromtab 文件是/etc/crontab ,但是每个用户也可以创建自己的 cromtab 文件来在特

Linux进程与计划任务

Linux进程与计划任务 linux进程及作业管理 进程 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等特权操作模式切换(理想状态):70%CPU时间用户模式+30%CPU时间内核模式进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的存在生命周期的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述

计划任务及其相关命令

Linux 计划任务的分类: 一次性任何计划: 未来的某时间点执行一次任务 at:专门用来处理一次性任务计划 batch :系统自行选择空闲时间去执行此处指定的任务 周期性的任务计划: 周期性运行某任务 crontab :可以根据定义的周期信息,循环的去做些事情 at 计划任务 at 是由atd服务提供的,依赖与atd 服务, 需要启动才能实现at 任务 在centos6上可以用service atd start来启动服务 在centos7上要使用systemctl start atd.serv