Linux计划任务及压缩归档

Posted libetjohn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux计划任务及压缩归档相关的知识,希望对你有一定的参考价值。

计划任务介绍

我们可以通过一些设置。来让电脑定时提醒我们该做什么事了。或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务。而遇到一些需要执行的事情或任务。我们也可以通过命令来告诉电脑一会临时把这个工作给做一下
总结:在我们LINUX中,我们可以通过crontab和at这两个东西来实现这些功能的
计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据
计划任务的安排方式分两种:
一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情
一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务
at和crontab这两个命令:
at:它是一个可以处理仅执行一次就结束的指令
crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去

at一次性计划任务使用

at语法格式:at 时间

  1. 下载at程序
    [[email protected] ~]# yum install at -y

  2. 启动atd服务
    [[email protected] ~]# systemctl restart atd;一般程序后面加一个d
    [[email protected] ~]# ps aux | grep atd
    root 1166 0.0 0.1 25904 944 ? Ss 17:52 0:00 /usr/sbin/at -f root 1168 0.0 0.1 112704 956 pts/0 S+ 17:52 0:00 grep –color=auto atd

  3. 设置at计划任务
    [[email protected] ~]# at 10:00 #如果是上午时间,后面加上am,比如9:20am
    at> touch /tmp/test1 #输入你要执行的命令 at> #按ctrl+d保存
    job 1 at Fri Mar 1 10:00:00 2019
    [[email protected] ~]# at -l #查看计划任务 1 Fri Mar 1 10:00:00 2019 a root
    [[email protected] ~]# atq #查看计划任务 1 Fri Mar 1 10:00:00 2019 a root

  4. 删除计划任务atrm
    [[email protected] ~]# at -l #第一步查看计划任务,获取前面编号
    1 Fri Mar 1 10:00:00 2019 a root
    [[email protected] ~]# atrm 1 #删除计划任务加上编号
    [[email protected] ~]# at -l #再次查看计划任务发现已经删除

  5. at计划任务的特殊写法
    [[email protected] ~]# at 20:00 2018-10-1 在某天
    [[email protected] ~]# at now +10min 在 10分钟后执行
    [[email protected] ~]# at 17:00 tomorrow 明天下午5点执行
    [[email protected] ~]# at 6:00 pm +3 days 在3天以后的下午6点执行

crontab定时任务的使用

语法:#crontab -u? -e
常用选项:
-l:list,列出指定用户的计划任务列表
-e:edit,编辑指定用户的计划任务列表
-u:user,指定的用户名,如果不指定,则表示当前用户
-r:remove,删除指定用户的计划任务列表

  1. 查看进程是否启动
    [[email protected] ~]# ps aux | grep crond
    root 621 0.0 0.3 126284 1600 ? Ss 17:46 0:00 /usr/sbin/crond -n root 1194 0.0 0.1 112704 956 pts/0 S+ 18:05 0:00 grep –color=auto crond

  2. 查看计划任务
    [[email protected] ~]# crontab -l
    no crontab for root
    计划任务保存位置;/var/spool/cron/

  3. 编写计划任务
    计划任务的规则语法格式,以行为单位,一行为一个计划:
    分 时 日 月 周 需要执行的命令
    执行的命令建议写成绝对路径的格式!
    例如:如果想要每天的0点0分执行reboot指令,则可以写成
    0 0 * * * reboot
    取值范围(常识):
    分:0~59
    时:0~23
    日:1~31
    月:1~12
    周:0~7,0和7表示星期天
    四个符号:
    :表示取值范围中的每一个数字
    -:做连续区间表达式的,要想表示1~7,则可以写成:1-7
    /:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:
    /10
    ,:表示多个取值,比如想在1点,2点6点执行,则可以在时的位置写:1,2,6
    问题1:每月1、10、22日的4:45重启network服务
    45? 4? 1,10,22? ? ? systemctl restart network?(每月,周没有制定)
    问题2:每周六、周日的1:10重启network服务
    10? 1? ? ? 6,7? systemctl restart network???(日、月没有指定)
    问题3:每天18:00至23:00之间每隔30分钟重启network服务
    /30? 18-23? ? ? ? systemctl restart network??( 日 月 周 没有指定)
    问题4:每隔两天的上午8点到11点的第3和第15分钟执行一次重启
    3,15? 8-11? /2? ? *? reboot???(月和周没有指定)
    案例:真实测试案例,每1分钟往root家目录中的ken.txt中输一个123,为了看到效果使用追加输出
[[email protected] ~]# crontab -e #编写计划任务
* * * * * echo “123” >> /root/ken.txt
[[email protected] ~]# tail -f ken.txt #查看计划任务执行结果 123 123
  1. 删除计划任务
    [[email protected] ~]# crontab -l * * * * * echo “123” >> /root/ken.txt
    [[email protected] ~]# crontab -r
    [[email protected] ~]# crontab -l no crontab for root
    注意:在计划任务中,默认的最小单位就是分,不能再小了。
    crontab里面的%必须+/进行转义,否则就会出错。
    命令的位置要用绝对路径!
    删除任务可以编辑文档用#标记不执行的任务。

压缩归档

  1. 掌握归档的定义:归档(archiving)就是将许多文件(或目录)打包成一个文件。
  2. 了解归档的目的:归档的目的就是方便备份、还原及文件的传输操作。
  3. 掌握tar命令的功能:将多个文件(也可能包括目录,因为目录本身也是文件)放在一起存放到一个磁带或磁盘归档文件中。并且将来可以根据需要只还原归档文件中的某些指定的文件。
  4. 掌握tar命令的常用选项:
*   c:创建一个新的tar文件。
*   t:列出tar文件中目录的内容。
*   x:从tar文件中抽取文件。
*   f:指定归档文件或磁带(也可能是软盘)设备(一般都要选)。
*   v:显示所打包的文件的详细信息,v是verbose的第1个字母。
*   z:使用gzip压缩算法来压缩打包后的文件。
*   j:使用bzip2压缩算法来压缩打包后的文件(文件压缩的更小)
常用选项组合:

压缩归档:czvf
解压:xzvf

  1. 压缩归档
    [[email protected] ~]# mkdir test
    [[email protected] ~]# cd test
    [[email protected] test]# touch 1..10.txt
    [[email protected] test]# tar czvf test.tar.gz ./* ./10.txt ./1.txt ./2.txt ./3.txt ./4.txt ./5.txt ./6.txt ./7.txt ./8.txt ./9.txt
    [[email protected] test]# ls 10.txt 2.txt 4.txt 6.txt 8.txt test.tar.gz 1.txt 3.txt 5.txt 7.txt 9.txt
    不想要看过程,就是czf不要v。xzvf同理。

  2. 解压
    [[email protected] test]# rm -rf 1..10.txt
    [[email protected] test]# ls test.tar.gz
    [[email protected] test]# tar xzvf test.tar.gz ./10.txt ./1.txt ./2.txt ./3.txt ./4.txt ./5.txt ./6.txt ./7.txt ./8.txt ./9.txt
    [[email protected] test]# ls 10.txt 2.txt 4.txt 6.txt 8.txt test.tar.gz 1.txt 3.txt 5.txt 7.txt 9.txt
    可以加上-C制定解压到那个目录
    [[email protected] test]# tar xvf test.tar.gz -C /tmp
    ./10.txt ./1.txt ./2.txt ./3.txt ./4.txt ./5.txt ./6.txt ./7.txt ./8.txt ./9.txt
    [[email protected] test]# ls /tmp 10.txt 2.txt 4.txt 6.txt 8.txt ks-script-8jIJc_ yum.log 1.txt 3.txt 5.txt 7.txt 9.txt vmware-root
    可以不用加z。
    注意:在创建压缩文件的时候,最好进入需要压缩文件的目录下。

以上是关于Linux计划任务及压缩归档的主要内容,如果未能解决你的问题,请参考以下文章

Linux的归档及压缩和Linux的cron时间计划任务

9压缩/解压缩及任务计划介绍

压缩工具和计划任务

Linux学习命令汇总九——任务计划调度atd,crond及文件访问控制列表

Linux进程管理及计划任务

计划任务及服务管理