zoukankan      html  css  js  c++  java
  • 压缩工具和计划任务

    压缩和解压缩工具

    压缩等于: 时间 换 空间

    CPU的时间 >>> 磁盘空间

    压缩工具
    compress 后缀 .Z
    gzip 后缀 .gz
    bzip2 后缀 .bz2
    xz 后缀 .xz

        归档工具
        tar 后缀 .tar

        归档加压缩
        zip 后缀 .zip


    第一组工具 gzip / gunzip / zcat

    压缩
    gzip [OPTION]... FILE...
    常用选项
    -d :解压缩 相当于gunzip
    -* :指定压缩比 默认是6 数字越大压缩比越大;除非特殊要求一般不变
    -c :将压缩结果输出至标准输出
    gzip -c FILE > NEWfile.gz

        解压和查看压缩包 命令后面直接跟文件没什么重要选项

        gunzip file.gz
        zcat file.gz


    第二组工具 bzip2 / bunzip2 / bzcat

    压缩
    bzip2 [OPTION]... FILE...
    常用选项
    -d :解压缩 相当于bunzip2
    -* :指定压缩比 默认是6 数字越大压缩比越大;除非特殊要求一般不变
    -k : keep , 保留原文件
    bzip2 -k file (不用输出重定向他会自动保留源文件)
    查看
    bzcat file.bz2


    第三组工具 xz / unxz / xzcat

    压缩
    xz [OPTION]... FILE...
    常用选项
    -d :解压缩 相当于unxz
    -* :指定压缩比 默认是6 数字越大压缩比越大;除非特殊要求一般不变
    -k : keep , 保留原文件

        以上三种压缩工具无法对目录进行打包 需要使用归档工具打包后才能压缩


    归档工具


    tar [OPTION]... FILE | DIR ...
    常用选项


    -c 创建归档
    tar cf NEWfile.tar FILE...

        -x 展开归档
        tar xf file.tar -C DIR

        -t 查看归档文件中的文件列表
        tar tf file.tar

        -z 归档并调用gzip工具将文件压缩
        tar zcf NEWfile.tar.gz FILE...

        -j 归档并调用bzip2工具将文件压缩
        tar jcf NEWfile.tar.bz2 FILE...

        -J 归档并调用xz工具将文件压缩
        tar Jcf NEWfile.tar.bz2 FILE...

        -v 显示详细信息

        解压缩并展开归档
        tar可以自动识别压缩文件的格式不必指定调用的工具
        不加-C 指定目录会解压到当前工作目录
        tar xf NEWfile.tar.gz -C DIR

    zip工具可以归档并压缩


    压缩
    zip NEWfile.zip FILE
    解压
    unzip file.zip

    linux计划任务、周期性执行任务


    未来某时间执行一次任务 at
    周期性允许任务 croutab

    邮件

    默认周期任务执行结果会通过邮件发送给用户 默认在/var/spool/mail/USERNAME 下

         mailx命令可以收发互联网邮件

    mailx [-s 邮件的标题] username[@域名或主机名]
    如果是给本主机用户发送邮件的话@域名或主机名可省
    邮件正文的生成
    1 交互式输入,编写完正文后单独一行 . 退出
    2 通过输入重定向
    3 通过管道
    查看邮件
    mail 即可
    q 退出

        默认邮件端口为25

    OK现在回头说计划任务


    单次执行计划任务 at

    at命令
    首先确保atd服务 正常允许 不然定义了也不会生效
    如果没有开启 他会返回你一段话
    Can't open /var/run/atd.pid to signal atd. No atd running? 看到后开启服务即可

    at [OPTION]... TIME
    TIME
    HH:MM [YYYY-mm-dd]
    now+*min 几分钟后
    常用选项
    -l 查看计划任务
    -f 从文件中读取作业任务,而不用交互式提交
    -d * 删除第几条计划任务
    -c * 查看作业的具体内容
    -q 指明队列
    at命令有队列 用单个字母表示 默认都使用a队列

    注意 作业执行结果都是以邮件发送给提交作业的用户



    周期性执行任务 cron


    服务程序
      cronle:主程序包 主要提供了crond守护进程及相关辅助工具

      首先确保crond守护进程处于运行状态

      向crond提交作业不同at命令,他需要使用专用的配置文件,此文件有固定格式不建议使用编辑器直接编辑,应使用crontab命令编写

    cron任务分为两类
      系统cron任务:主要用于实现系统自身维护

      系统cron任务 只能通过手动编辑 /etc/crontab 来实现

      用户cron任务:用户定义的cron任务

      一般使用crontab命令来编写

    编写格式


    系统cron任务格式 /etc/crontab 共7个字段: 分 时 日 月 周 用户 任务

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root

    # For details see man 4 crontabs

    # Example of job definition:
    # .---------------- minute (0 - 59)
    # | .------------- hour (0 - 23)
    # | | .---------- day of month (1 - 31)
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # | | | | |
    # * * * * * user-name command to be executed

    千万注意!!!

    1 每一行定义一个周期性任务

    * * * * * :定义周期性时间
    user-name :运行任务的用户角色
    command to be executed : 任务
    2 此处的环境变量不同于用户交互式登录环境变量,因此建议使用绝对路径或者自定义PATH环境变量

    3 执行结果通过邮件发送给指定的用户


    用户cron任务 /var/spool/cron/USERNAME 共六个字段 分 时 日 月 周 任务

    注意条件和系统用户一样 只有第三点不同 执行结果会发送邮件到当前用户

    时间表示法:


    1 使用特定值 分钟(0 - 59)小时(0 - 23) 日期(1 - 31) 月份(1 - 12) 周(0 - 6 或 1 - 7 因为周日表示0或7)
    一般来说 日期 和 周 不同时使用

    2 * 表示给定时间点上有效取值范围内的所有值

    3 离散取值 , 在时间点上使用逗号分隔多个值

    4 连续取值 - 在时间点上使用-连接开头和结束

    5 在指定时间点上,定义步长 */2 = 每两分钟

    注意:

    1 指定的时间点的特定值不能被步长整除时 其意义不复存在
    2 当编写任务时用到 % 需要转义或单引号
    3 最小时间单位为分钟 ,想完成秒级任务 需要使用其他机制
    比如定义为每分钟执行任务,而利用脚本实现分钟之内,循环多次


    crontab 命令


    crontab -e 编写任务

    crontab -l 列出任务列表

    crontab -r 移除所有任务,想要单个删除时使用-e 编辑

    crontab -u user [ e l r ] 使用别人的身份运行cron

     当可以确保任务可以执行成功时 使用输出重定向到/dev/null 不建议使用 &>/dev/null

    练习
    1 每12小时备份一次/etc目录至/backups目录中,保存文件名为 "etc-yyyy-mm-dd-hh.tar.xz"
    0 */12 * * * /usr/bin/tar JcfP /backups/etc-`/usr/bin/date +\%Y-\%m-\%d-\%H-\%M`.tar.xz /etc/ >/dev/null

    2 每周2、4、7 备份/var/log/secure文件至/log目录中,文件名为 "secure-yyyymmdd"
    0 0 * * 2,4,7 /usr/bin/cp /var/log/secure /log/secure-`/usr/bin/date +\%Y\%m\%d\%H\%M` >/dev/null

    3 每两小时取出当前系统/proc/meminfo 文件中以S或M开头的行信息追加至/tmp/meminfo.txt文件中
    0 */2 * * * /usr/bin/grep -Ei "^(s|m)" /proc/meminfo > /tmp/meminfo.txt

  • 相关阅读:
    java中的lamda表达式
    Arrays.sort()中Lambda表达式
    检索中的函数及不同范围的处理
    2014.6.24
    2014.6.23
    第六天培训
    第五天培训
    第四天培训
    第三天培训!
    第二天培训
  • 原文地址:https://www.cnblogs.com/linuxys/p/13140068.html
Copyright © 2011-2022 走看看