zoukankan      html  css  js  c++  java
  • 末学者笔记--Linux计划任务及压缩归档

    一.计划任务

    1.介绍:

    (1)定义:简单说就是通过一些设置,来使linux系统定时执行一些操作与任务。

    (2)作用:一般可执行一些周期性操作,也可定期备份数据。

    (3)可使用的命令:常用为at和crontab这两个命令;

      at:它是一个可以处理仅执行一次就结束的指令

      crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去。

    二.“at”一次性任务

    (1)下载“at”程序(一般Linux没有此程序)

      指令:——#yum install at -y

    (2)启动服务“atd”:

      ——#systemctl restart atd

      可查看服务是否启动:

      ——#ps aux | grep atd

    (3)设置:

    [root@feige-1 ~]# at 10:00                          #如果是上午时间,后面加am,如:9:30am
    at> touch /tmp/test1                                #输入你要执行的命令
    at> <EOT>                                           #ctrl+d 保存
    job 1 at Tue Aug 20 10:00:00 2019
    [root@feige-1 ~]# at -l                             #查看计划任务
    1    Tue Aug 20 10:00:00 2019 a root
    [root@feige-1 ~]# atq                               #查看计划任务
    1    Tue Aug 20 10:00:00 2019 a root

      删除任务设置:——atrm

    [root@feige-1 ~]# at -l                   #查看计划任务,活得任务编号“1”
    1    Tue Aug 20 10:00:00 2019 a root
    [root@feige-1 ~]# atrm 1                  #atrm 接任务编号
    [root@feige-1 ~]# at -l
    [root@feige-1 ~]# 

      at设置的其他写法:

    [root@feige-1 ~]# at 20:00 2019-10-1    #在某天
    [root@feige-1 ~]# at now+10min          #在10分钟后执行
    [root@feige-1 ~]# at 17:00 tomorrow     #明天下午5点执行
    [root@feige-1 ~]# at 6:00 pm +3 days    #在3天后的下午6点执行

    三.crontab定时任务的使用

    1.语法:#crontab  -u  -e

    常用选项:

    -l:list,列出指定用户的计划任务列表

    -e:edit,编辑指定用户的计划任务列表

    -uuser,指定的用户名,如果不指定,则表示当前用户

    -rremove,删除指定用户的计划任务列表

    2. 查看进程服务是否启动

    [root@feige~]# 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

    3. 查看计划任务

    [root@feige ~]# crontab -l

    no crontab for root

    4. 编写计划任务

    计划任务的规则语法格式,以行为单位,一行为一个计划:

    *  *  *   *  *

    需要执行的命令

    执行的命令建议写成绝对路径的格式!

    例如:如果想要每天的00分执行reboot指令,则可以写成

    0 0 * * * reboot

    取值范围(常识):

    分:0~59

    时:0~23

    日:1~31

    月:1~12

    周:0~707表示星期天

    四个符号

    *:表示取值范围中的每一个数字

    -:做连续区间表达式的,要想表示1~7,则可以写成:1-7

    /:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:*/10

    ,:表示多个取值,比如想在1点,26点执行,则可以在时的位置写:1,2,6

    问题1:每月1820日的5:30重启network服务

    30  5  1,8,20  *  * systemctl restart network(每月,周没有制定,用*

    问题2:每周六、周日的0:30重启network服务

    30  0  *  *  6,7  systemctl restart network(日、月没有指定)

    5. 删除计划任务

    例如:1分钟往root家目录中的ken.txt中输一个123,为了看到效果使用追加输出

    [root@feige ~]# crontab -e                    #编写计划任务

    * * * * * echo "123" >> /root/ken.txt       

    [root@feige ~]# tail -f ken.txt               #查看计划任务执行结果

    123

    123

    [root@feige ~]# crontab -l                       #查看已设的计划任务

    * * * * * echo "123" >> /root/ken.txt

    [root@feige ~]# crontab -r

    [root@feige ~]# crontab -l

    no crontab for root

    注意:在计划任务中,默认的最小单位就是分,不能再小了。

    四.压缩归档

    1.定义:归档(archiving)就是将许多文件(或目录)打包成一个文件。

    2.目的:归档的目的就是方便备份、还原及文件的传输操作。

    3.tar命令的功能:将多个文件(也可能包括目录,因为目录本身也是文件)放在一起存放到一个磁带或磁盘归档文件中。并且将来可以根据需要只还原归档文件中的某些指定的文件。

    4.tar命令的常用选项:

    c:创建一个新的tar文件。

    t:列出tar文件中目录的内容。

    x:从tar文件中抽取文件。

    f:指定归档文件或磁带(也可能是软盘)设备(一般都要选)。

    v:显示所打包的文件的详细信息,vverbose的第1个字母。

    z:使用gzip压缩算法来压缩打包后的文件。

    j:使用bzip2压缩算法来压缩打包后的文件(文件压缩的更小)

    5.常用选项组合:

    压缩归档:czvf

    解压:xzvf

    1. 压缩归档实例:

    (1)压缩:

    [root@feige ~]# mkdir test

    [root@feige ~]# cd test

    [root@feige test]# touch {1..10}.txt

    [root@feige 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

    [root@feige 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

    (2)解压

    [root@feige test]# rm -rf {1..10}.txt

    [root@feige test]# ls

    test.tar.gz

    [root@feige 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

    [root@feige test]# ls10.txt  2.txt  4.txt  6.txt  8.txt  test.tar.gz1.txt   3.txt  5.txt  7.txt  9.txt

    【注】可以加上-C定解压到那个目录

    [root@feige 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

    [root@feige test]# ls /tmp

    10.txt  2.txt  4.txt  6.txt  8.txt  ks-script-8jIJc_  yum.log1.txt   3.txt  5.txt  7.txt  9.txt  vmware-root

    末学后进,微羽成鳞~
  • 相关阅读:
    关于_OPENMP预编译
    Java FlameGraph 火焰图
    java的-cp和-Djava.library.path
    maven依赖包和依赖仓库(2)
    opencv读取图像输入到tensorflow模型中进行运算【cpp】
    NiftyNet 项目了解
    windows编译tensorflow c++库
    关于Tensorflow 的数据读取环节
    Itunes connect上传应用视频 app preview时遇到“无法载入文件”的问题
    Unity 扩展编辑器
  • 原文地址:https://www.cnblogs.com/feige2L/p/10679629.html
Copyright © 2011-2022 走看看