计划任务
计划任务概念解析
在Linux操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划好的系统管理任务(如定期备份、定期采集监测数据)。通过安装at和crontabs这两个系统服务实现一次性、周期性计划任务的功能,并分别通过at、crontabs命令进行计划任务设置。
计划任务分为一次性和循环性的计划任务
一、一次调度执行-----at
作用: 计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据
一次性调度执行 at---实战
语法格式 at <时间规格> :now +5min >写执行的命令 可写hours、days、weeks 为单位
例1: [root@linux-server ~ ]# yum -y install at [root@linux-server ~ ]# systemctl status atd #查看启动状态(atd,进程名) [root@linux-server ~ ]# systemctl start atd #首先要启动服务 [root@linux-server ~ ]# at -l #列出计划任务 [root@linux-server ~ ]# at now +1min #一分钟后开始执行 at> useradd uuuu at> <EOT> #Ctrl+D完成 job 1 at Sat Mar 21 22:34:00 2015 [root@linux-server ~]# id uuuu
例2:
[root@linux-server ~]# vim at.jobs
useradd u99
useradd u00
touch /a.txt
[root@linux-server ~]# at 20:33 < at.jobs #计划20:33输出at.jobs的内容
例3: 1. 准备sudo用户 [root@linux-server ~]# id jack uid=1007(jack) gid=1012(jack) groups=1012(jack) [root@linux-server ~]# useradd jack #如果不存在则创建jack用户 [root@linux-server ~]# visudo #编辑sudoers文件,更改允许哪些用户和组运行sudo 91 ## Allow root to run any commands anywhere 92 root ALL=(ALL) ALL 93 jack ALL=(ALL) NOPASSWD: ALL #添加内容 [root@linux-server ~]# su - jack #切换为jack用户
2. 以sudo 用户jack创建at任务 [jack@linux-server ~]$ vim jack.at sudo useradd u200 sudo useradd u300 sudo touch /home/jack.txt [jack@linux-server ~]$ at 20:38 < jack.at
更多使用案例 at 5:00pm+2 days #2天后的下午5点执行命令 at 08:00am tomorrow #明天上午8点,执行命令
循环调度执行cron 用户级
安装软件 [root@linux-server ~]# yum -y install crontabs #如果软件不存在安装 启动服务 rhel5/6: [root@linux-server ~]# /etc/init.d/crond status [root@linux-server ~]# /etc/init.d/crond start 开机启动(rhel5/6) [root@linux-server ~]# chkconfig crond on rhel7: [root@linux-server ~]# systemctl start crond.service [root@linux-server ~]# systemctl enable crond.service #设置开机启动 [root@linux-server ~]# systemctl status crond.service #查看服务状态 [root@linux-server ~]# ps -ef | grep crond root 755 1 0 20:18 ? 00:00:00 /usr/sbin/crond -n 存储位置: [root@linux-server ~]# cd /var/spool/cron/ 管理方式: crontab -l #列出当前用户的计划任务 crontab -r #删除当前用户所有的计划任务 crontab -e