Linux计划任务与压缩归档
计划任务分为两种形式
第一种:定时性的:也就是例行,每隔一定的周期就要重复来做这个任务。
第二种:突发性的:临时决定,只执行一次的任务。
用到的命令有两个
at:它是一个可以处理仅执行一次的任务就结束的指令
crontab:它是会把你指定的工作或任务,比如脚本,按照你设定的周期一直循环下去。
一次性计划任务
at的的用法:它是结合时间来设置,需要用到语法
1、首先要下载at程序
2、其次要启动atd服务(什么是atd服务)
(启动atd服务)
systemctl restart atd
(查看进程是否启动)
ps aux | grep atd
3、设置计划任务 at
要设定的时间,如果是上午时间,数字后面需要加am,晚上则不需要。
at
输入要执行的命令
at>
保存
at > ctrl+d
删除
ctrl+删除键
查看at计划任务
at -l
atq
4、删除计划 atrm
首先要查看计划任务,获取最前面的编号,而后atrm 编号,即可删除,在查看计划任务就没有了。
5、at计划任务特殊写法
在某天: at 几时:几分 年-月-日
在多少分钟后执行: at now +数字min
明天下午几点执行:at 时间 tomorrow
在几天以后的下午几点执行: at 时间 pm +数字 days
crontab定时任务的使用(/etc/crontab)
选项:
列出指定用户的计划任务列表
-l
编辑指定用户的加护任务列表
-e
指定的用户名,如果不指定,则表示当前用户
-u
删除指定用户的计划任务表
-r
编写计划任务:
语法格式:以行为单位,每行为一个计划。
需要编写的内容:分 时 日 月 周 (顺序不能出错)
执行的命令要写绝对路径
命令的格式为
0 0 * * * 要执行的命令的绝对路径
编写格式:
进入编写模式
crontab -e
先编写5个*
比如有多个任务,但有一个不想执行,可以添加#注释掉,不执行
存放路径
/var/spool/cron/root
如果指定用户的话,要查看的时候加用户名
*****什么都是代替的话,代表每时每刻,用tail -f监控
比如说每隔5天在上午8点至下午5点的第30分钟和45分钟执行重启命令
30,45 8-17/5 * * reboot
取值范围:
周:0-7, 0和7表示星期日(星期天)
四个符号:
*:取值范围中的每一个数字
-:做连续区间的表达式,比如想表示1~7,则可以写成1-7
/:没多少个/次,比如说每10分钟一次,*/10
,:表示多个取值,比如想在1点,2点,6点执行,1,2,6
压缩归档:
掌握tar命令的常用选项:
c:创建一个新的tar文件。
t:列出tar文件中目录的内容。
x:从tar文件中抽取文件。
f:指定归档文件或磁带(也可能是软盘)设备(一般都要选)。
v:显示所打包的文件的详细信息,v是verbose的第1个字母。
z:使用gzip压缩算法来压缩打包后的文件。
j:使用bzip2压缩算法来压缩打包后的文件(文件压缩的更小)
常用选项组合:
压缩归档
czvf
解压
xzvf
步骤:首先创建一个目录,而后进入这个目录,然后在这个目录里创建文件,{1..10}.txt,而后进行压缩
压缩的命令格式
tar czvf 刚创建的目录名字.tar.gz ./*
./表示当前目录下
解压:首先删除1至10的文件,而后查看一下,目录里只剩了一个压缩包
而后使用指令
tar xzvf 创建的目录名字.tar.gz
指定解压到哪个目录
-C
tar xzvf 创建的目录名字.tar.gz -C 目录名字
常用的一些压缩包格式
zip
bz
bz2
周计划任务压缩归档的结合
怎么以时间命名一个文件
是执行一个命令
``
touch `date “+%F”`
$() #也是执行命令
touch $(date “+%F”)
#在crontab中的格式为
touch $(date “+\%F”)
tar czvf /tmp/`date "+%F"`.tar.gz /etc/*
#将etc目录下的所有文件备份到tmp目录下并以年月日命名
#&&是连续执行命令,意思是执行成功前一个在执行后一个!