1 一次性计划任务
at 对应的守护进程atd,在用at前应确保其进程正常运行。
1)查看atd的运行状态
systemctl status atd
systemctl status -l atd //查看详细状态
2)进程状态
查看进程状态: systemctl status 进程名
或者 systemctl status -l 进程名
启动一个进程: systemctl start 进程名
重启一个进程: systemctl restart 进程名
关闭一个进程: systemctl stop 进程名
使一个进程开机自动启动: systemctl enable 进程名
禁止一个进程开机自启: systemctl disable 进程名
删除进程对应的服务文件: systemctl mask 进程名
恢复进程对应的服务文件: systemctl unmask 进程名
重新加载服务启动的文件: systemctl daemon-reload 进程名
注意:服务的启动文件位置 /usr/lib/systemd/system/
3)哪些用户可以使用at
/etc/有两个文件可以控制哪些用户可以使用at计划任务,/etc/at.allow记载哪些用户可以使用,/etc/at.deny中记载哪些用户不可以使用。如果两个文件都存在,那么以/etc/at.allow的为准;如果只有/etc/at.allow,那么里面记载的用户可以用,没记载的就不可以用;对于/etc/at.deny,以此类推。但是root用户任何时候都可以使用。
echo 用户名 > /etc/at.deny //这样用户就不能用at了
4)at 命令格式: at 时间和日期
at >在此输入需要执行的命令或脚本
at > Ctrl+d //退出at命令行
注:
i) 时间在前,日期在后;只输入时间没有日期会认为是今天的某个时刻;只有日期没有时间,还会认为是日期输入的时刻。
//at 23:00 at 12/31/13 at 23:00 12/31/13
ii)特殊时刻: now 现在 noon 中午 teatime 下午4点
十二小时制 am pm + n (minutes hours days weeks)并且,+号和后面的数字间有空格,数字和后面的时间单位间有空格
// at now at 0:00pm 12/31/13 at teatime + 30 minutes
iii)建议写需要执行的命令的绝对路径;需要执行的脚本必须具有执行权限。
编辑脚本文件: vim /root/1.sh
#!/bin/bash
/usr/bin/touch /root/f3
编辑完成后为脚本添加执行权限:
chmod a+x /root/1.sh at now + 1 minutes
at > /root/1.sh at > Ctrl+d
例:i)计划时间到时自动创建f1 // at 时分 月/日/年
at 09:39 12/11/17 at > /usr/bin/touch /root/f1 at > Ctrl + d
ii)at now + 1 minutes at > /usr/bin/touch /root/f2 at > Ctrl+d
5)at 任务管理
查看当前系统内有哪些at计划任务: atq
查看某一计划任务的详细信息: at -c 任务编号
删除一个at任务: atrm 任务编号
2 周期性计划任务
1) cron 在使用之前先要确保cron的守护进程处于运行状态
systemctl status crond //查看状态
2)哪些用户可以使用cron
/etc/有两个文件可以控制哪些用户可以使用cron计划任务,/etc/cron.allow记载哪些用户可以使用,/etc/cron.deny中记载哪些用户不可以使用。如果两个文件都存在,那么以/etc/cron.allow的为准;如果只有/etc/cron.allow,那么里面记载的用户可以用,没记载的就不可以用;对于/etc/cron.deny,以此类推。但是root用户任何时候都可以使用。
3)cron计划任务格式:
编写一个新的 cron计划任务: crontab -e
格式:第一行 SHELL=/bin/bash //下文的命令使用哪个shell环境执行
第二行 MAILTO=root //如果出现问题,发送邮件给root
第三行 分 时 日(每月中的第几天) 月 星期 命令或脚本
0-59 0-23 1-31 1-12 0-7
// *为 每一 连续时间 1-3,5-9 间隔时间 */5
注:命令最好写绝对路径,脚本必须有执行权限
例如:
第一步 编辑脚本巡检文件vim /root/cpu.sh ,内容如下:
#!/bin/bash
date >> /root/cpu.txt //用重定向也行
ps aus | sed 1d | sort -rn -k3 | head -n5 >> /root/cpu.txt
(这行是空格行,用来分隔文段,与下面的echo的#作用一样)
echo “###############################” >> /root/cpu.txt
第二步 为脚本增加执行权限:chmod a+x /root/cpu.sh
第三步 创建cron计划任务 crontab -e ,内容如下:
SHELL=/bin/bash
MAILTO=root
00 8 * * 1-5 /root/cpu.sh
//每周一到周五,上午八点自动执行/root/cpu.sh脚本
例1:SHELL=/bin/bash
MAILTO=root
*/1 * * * 1-5 /root/cpu.sh //每1分钟执行一次
4) cron 计划任务管理
查看当前系统的cron计划任务: crontab -l
查看指定用户创建的计划任务: crontab -l -u 用户名
创建cron任务: crontab -e
以指定用户身份创建计划任务: crontab -e -u 用户名
删除cron任务,使用cron -e 进入crontab编辑的文件,删除需要删除的条目后保存退出
清空cron任务: crontab –r
清空指定用户的cron任务: crontab -r -u 用户名
转载请注明出处,谢谢!