Linux计划任务与压缩归档

时间:2023-11-10 23:55:02

计划任务分为两种形式

第一种:定时性的:也就是例行,每隔一定的周期就要重复来做这个任务。

第二种:突发性的:临时决定,只执行一次的任务。

用到的命令有两个

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 

编写计划任务:

语法格式:以行为单位,每行为一个计划。

需要编写的内容:分 时 日 月 周  (顺序不能出错)

执行的命令要写绝对路径

命令的格式为

  * * * 要执行的命令的绝对路径

编写格式:

进入编写模式

crontab -e

先编写5个*

比如有多个任务,但有一个不想执行,可以添加#注释掉,不执行

存放路径

/var/spool/cron/root

如果指定用户的话,要查看的时候加用户名

*****什么都是代替的话,代表每时每刻,用tail -f监控

比如说每隔5天在上午8点至下午5点的第30分钟和45分钟执行重启命令

, -/ * * 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目录下并以年月日命名


#&&是连续执行命令,意思是执行成功前一个在执行后一个!