Linux计划任务

运行环境:vps

Linux版本:CnetOS7.4


计划任务分两种:一次性计划任务和长期性计划任务。

一次性计划任务:在特定的时间执行,只执行一次。

长期性计划任务:通常会在特定的时间周期性执行。


1.一次性计划任务

命令:at

查看计划任务:at -l

删除计划任务:atrm 序号


在15:30时备份文件夹

[root@google fj]# at 15:30
at> tar -czf all.tar.gz .
at> <EOT> # 按下ctrl+d结束编写
job 12 at Mon Feb 25 15:30:00 2019
[root@google fj]# at -l
12	Mon Feb 25 15:30:00 2019 a root


等同于

[root@google fj]# echo "tar -czf all.tar.gz ." | at 15:30
job 13 at Tue Feb 26 15:30:00 2019


删除计划任务

[root@google fj]# at -l
13	Tue Feb 26 15:30:00 2019 a root
[root@google fj]# atrm 13
[root@google fj]# at -l
[root@google fj]


中途遇到的问题:

at: command not found

yum install at


Can't open /var/run/atd.pid to signal atd. No atd running?

service atd start


2.周期性任务

命令:crontab

查看任务:crontab -l

编辑任务:crontab -e

删除任务:crontab -r

格式:

cron计划任务的参数.png

时间参数

参数说明
分钟
取值为0~59的整数
小时
取值为0~23的任意整数
日期
取值为1~31的任意整数
月份
取值为1~12的任意整数
星期
取值为0~7的任意整数,其中0与7均为星期日


在crontab计划任务中需要使用命令绝对路径的方式来写,绝对路径可以使用whereis查看

[root@google fj]# whereis tar
tar: /usr/bin/tar /usr/include/tar.h


每周末备份文件夹

[root@google fj]# crontab -e

0 23 * * 6,7 /usr/bin/tar -czf ~/fj/all.tar.gz ~/fj


需要说明的是,除了用逗号(,)来分别表示多个时间段,例如“8,9,12”表示8月、9月和12月。还可以用减号(-)来表示一段连续的时间周期(例如字段“日”的取值为“12-15”,则表示每月的12~15日)。以及用除号(/)表示执行任务的间隔时间(例如“*/2”表示每隔2分钟执行一次任务)。


查看

[root@google fj]# crontab -e
crontab: installing new crontab
[root@google fj]# crontab -l
0 23 * * 6,7 /usr/bin/tar -czvf ~/fj/all.tar.gz ~/fj

展开阅读全文