Linux定时任务 crontab(-l -e)、at、batch

1、周期性定时任务crontab

cron['krɒn] 一时间单位  table

crontab -e 进入编辑定时任务界面,每一行代表一个定时任务,#开头的行为注释行,一行分成6列

分钟  小时  日期  月份  星期  调度的作业(命令),默认情况下/etc/crontab文件有规则(fedora亲测)

前五列允许出现的字符有  数字  -  *  /  ,  星期还可以采用mon、tue、wed、thu、fri、sat、sun,0-7(0和7为周日)  

10 4 * * * /bin/databasebackup.bash        每天4:10分执行
0 4 */2 * * /usr/sbin/slapcat            每隔一天的4点执行
0 22 * 5,8,11 1-5 wall "It's 10pm"         5 8 11月份的工作日的每天22点,向所有的登陆用户发消息
5 4 * * tue /bin/echo "Sunday"           每个周二的4:5分执行
0 23,1-7/2,8 * * * /usr/sbin/mtpdate        每天23点到到早上7点只见每隔两个小时以及早上8点执行同步时间
* * * * * sleep 10; /bin/date >>/tmp/date.txt    先执行休息十秒在执行date,其实就是两条命令,/usr/bin/sleep;
试用for或while的死循环加sleep可以实现每秒执行,再与crontab一起试用,会几个命令重复死循环,一般不是想要的效果!

  1 * * * * /usr/bin/date >> /home/lixn/time.txt  每天每个小时的1分钟执行

  */1 * * * * /usr/bin/data >> /tmp/time1.txt    每一分钟执行一次

(系统级的)做系统级配置我们会直接配置 /etc/crontab

(用户级的)一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本。(对的)

电脑关机后,定时任务便不能执行,再次开机又会自动执行 。(亲测)

 

crontab -l列出当前用户的定时任务

 

2、一次性定时任务at、banch

at 是一次性定时任务

banch 是一次性条件任务,即满足某种条件时(例如平均负荷很低)执行命令

一次性任务中的命令执行完毕(不管成功与否),对应的任务就自动消失。

序号 

定时任务 

说明 
1

 at [ -f file ] time 

在time时执行file文件中的命令,如果没有指定file文件那么从标准输入设备读取命令,出现at>

 at 22:00 <<<"shutdown -h now"

 

 at now+10minutes <<<"wall notice.txt"

 

 at 23:59 12/31/2011

at>cd /tmp

at> mkdir -p a/b/c

at> echo  "all done"

at>

在2011年的最后一刻执行命令cd /tmp; mkdir -p a/b/c; echo "all done"。

表示同时 按下ctrl+D

 at 5pm + 3 days <

/usr/sbin/ntpdate ntp.ubuntu.com

EOF

 三天后的下午5点与ntp.ubuntu.com作时钟同步

 at -f /opt/file.cmd 4am tomorrow

 明天下午4点执行文件/opt/file.cmd中的命令,file.cmd要先建好

 at -l

 列出全部的一次性定时任务。文件在????

 at -r 6

 删除6号定时任务
 batch <<< "bzip2 -9 bigfile.dat"

 在系统平均负载较低(<1.5)时执行压缩命令

10 

 batch

at > tar -cjf /tmp/backup.dat /opt/data

at >

 在系统平均负载较低时(<1.5)时执行数据打包压缩备份命令

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

at>  交互时按ctrl+D保存退出   不保存退出按ctrl+c
[lixn@localhost ~]$ atq  查询,还有at -l
8    Thu Apr  6 15:12:00 2017 a lixn
[lixn@localhost ~]$ atrm 8  删除,还有at -r 8

 

at 和batch需要继续亲测????系统平均负载再去看看??

你可能感兴趣的:(linux,服务)