Linux
常用
管理语句
Shell命令(变量)
正则表达式
重定向
EXPECT
流程控制
函数
日志
SED
sed常用操作
sed组合命令
sed脚本
AWK
awk常用
awk流程控制
awk脚本
SSH
SSH密钥的批量分发与执行
SSH连接很慢
ACL文件访问控制
计划任务
常用语句
批量添加用户和密码
批量修改密码
临时和永久关闭Selinux
修改主机名
Linux内核参数
无人值守安装
ISO镜像(mondorescue)
软件管理
SYSTEM服务
YUM本地仓
存储管理
逻辑卷LVM
磁盘阵列RAID
备份恢复相关命令
fio磁盘性能测试
内存管理
IPTABLES防火墙
FIREWALLD防火墙
curl请求
Linux问题
漏洞修复
限制网卡带宽
CentosYUM源
rsyslog 占用内存过高
df -h 卡住解决
Linux故障问题
网络配置
升级内核
Openssl生成证书
CENTOS6升级7
本文档使用MrDoc发布
返回首页
-
+
计划任务
2020年5月2日 11:17
admin
#AT(一次性计划任务) >##安装 yum -y install at >##使用 at [选项] <时间> -------------------------------------------------------- 选项: -m #当计划任务执行结束后发送邮件给用户 -l #查看用户计划任务 -d #删除用户计划任务 -c #查看at计划任务具体内容 -------------------------------------------------------- 注意: Ctrl+D #提交任务 Ctrl+回退键 #修改正在编辑的任务内容 -------------------------------------------------------- at 12:00 2020-05-02 #创建2020-05-02 12:00的计划任务 at 12:00 #创建当日12:00的计划任务 at -l #查看用户计划任务 at -c 1 #查看编号为1的计划任务具体内容 at -d 1 #删除编号为1的计划任务 --- #CRONTAB(周期性计划任务) >##服务 systemctl start crond #开启服务 systemctl stop crond #停止服务 systemctl enable crond #开机自启动 systemctl disable crond #取消开机自启动 >##使用 crontab [ -u user ] file #使用文件创建任务 或 crontab [ -u user ] { -l | -r | -e } -------------------------------------------------------- 参数说明: -e : 执行文字编辑器来设定时程表 -r : 删除目前的时程表 -l : 列出目前的时程表 -------------------------------------------------------- 时间格式如下: f1 f2 f3 f4 f5 program #其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。 >![](/media//202005/2020-05-02130500108725.png) # f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推 # f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推 # f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推 # f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推 --------------------------------------------------------\ >####例子: #每月每天每小时的第 0 分钟执行一次 /bin/ls 0 * * * * /bin/ls #在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup 0 6-12/3 * 12 * /usr/bin/backup #每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha" 20 0-23/2 * * * echo "haha" #周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; >####注意:当程序在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上 > /dev/null 2>&1 即可 20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh > /dev/null 2>&1 --- #特殊字符% >##第一个%表示标准输入的开始,其余%表示换行符 #示例一: * * * * * cat >> /tmp/cat.txt 2>&1 % stdin out #cat.txt中的内容: stdin out ===================================================== #示例二: * * * * * cat >> /tmp/cat.txt 2>&1 % stdin out 1 % stdin out 2 % stdin out 3 #cat.txt中的内容: stdin out 1 stdin out 2 stdin out 3 --- #crontab日志功能 ##crontab程序日志:/var/log/cron ![](/media//202112/2021-12-28090440290014.png) --- ##crontab中的任务日志: ####一、自行指定日志文件 0 9 * * * bash /opt/baobiao/wangxiaqing/report.sh &>> /opt/baobiao/wangxiaqing/report.log ####二、如果没有指定日志文件,则会在/var/spool/mail/$USER中 0 9 * * * bash /opt/baobiao/wangxiaqing/report.sh #则日志文件会在,该用户的/var/spool/mail/$USER中,如/var/spool/mail/root ####三、如果没有指定日志文件,而且也关闭了邮件日志功能。则会在/var/spool/clientmqueue中 #关闭邮件日志 MAILTO="" 0 9 * * * bash /opt/baobiao/wangxiaqing/report.sh --- #计划任务权限 >##AT任务权限: /etc/at.allow #默认不存在,有用户名则可用 /etc/at.deny #有用户名则不可用 >##CRONTAB任务权限: /etc/cron.allow #默认不存在,有用户名则可用 /etc/cron.deny #有用户名则不可用 >##注意说明: >####1.这些控制文件中,仅需要写入用户名即可,格式为一行一个用户名。 >####2.当allow文件存在时,仅在allow文件中出现的用户可以使用对应的计划任务。 >####3.如果allow与deny文件同时存在内容一样的用户,则仅出现在allow中的用户可以使用计划任务,allow优先级高于deny >####4.如果仅有deny文件,则所有出现在deny中的用户无法使用计划任务,其它用户均可以使用计划任务。
分享到: