经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
Linux编译安装、压缩打包与定时任务服务
来源:cnblogs  作者:JZEason  时间:2021/12/20 15:44:20  对本文有异议

一、编译安装

即使用源代码编译安装的方式,编译打包软件。

特点:

  1. 可以自定制软件;
  2. 可以按需构建软件;

编译安装案例

  1. 1、下载源代码包(这里以Nginx软件包源代码为例)
  2. wget https://nginx.org/download/nginx-1.20.2.tar.gz
  3. yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel # 提前下好所需依赖包,避免后续报错
  4. 2、解压压缩包
  5. tar -xf nginx-1.20.2.tar.gz
  6. 3、设置系统参数
  7. cd nginx-1.20.2
  8. # 自定制参数
  9. vim ./src/core/nginx.h
  10. # 执行编译
  11. ./configure
  12. 4、编译
  13. make
  14. 5、安装
  15. make install
  16. 6、启动
  17. /usr/local/nginx/sbin/nginx
  18. # 关闭
  19. /usr/local/nginx/sbin/nginx -s stop
  20. systemctl stop nginx
  21. 7、测试
  22. 浏览器上输入对应ip地址,可以访问代表安装成功。

二、压缩与打包

Windows中的常见压缩包有:zip,rar….

Linux中常见的压缩包有:gzip,bzip2….

2.1 gzip压缩

  1. 压缩命令:gzip [压缩文件]
  2. 解压命令:gzip -d [压缩包]

2.2 bzip2压缩

  1. 压缩命令:bzip2 [压缩文件]
  2. 解压命令:bzip2 -d [压缩包]

注意:上述两种压缩方式,都无法压缩目录,所以想要压缩目录的话便需要借助下面的打包命令—tar

2.3 tar打包

  1. tar : 打包命令
  2. 相关参数:
  3. -f : 指定打包的包名称
  4. -c : 打包
  5. -v : 显示打包的过程
  6. -z : 使用gzip压缩压缩包
  7. -j : 使用bzip2压缩压缩包
  8. -x : 解压(不需要指定压缩类型,自动匹配)
  9. -t : 查看压缩包内部的内容
  10. -P :忽略使用绝对路径时报出的错误

注意:
1、压缩时是什么路径,解压缩时就是什么路径,所以为了安全不要使用绝对路径压缩;
2、-f参数后面必须跟压缩包的名称,即参数f必须在参数的最后,其他参数位置可以随意;

三、定时任务服务

3.1 定时任务概念

3.1.1 定时任务作用说明
  • 类似生活中使用的闹钟
  • 可以自动完成操作命令
  • 定时备份系统数据信息
3.1.2 定时任务软件种类
  • 定时任务软件:cronie —— 默认系统自带定时服务 crond(crontab)
  • 定时任务软件:atd —— 定时任务只执行一次,一次性定时服务
  • 定时任务软件:anacron —— 非7*24小时运行的服务器
3.1.3 定时任务实现方式
  • 系统定时任务(系统会自动运行里面的内容)

    • 系统定时任务周期:每小时 —— 控制定时任务目录:/etc/cron.hourly
    • 系统定时任务周期:每一天 —— 控制定时任务目录:/etc/cron.daily
    • 系统定时任务周期:每一周 —— 控制定时任务目录:/etc/cron.weekly
    • 系统定时任务周期:每个月 —— 控制定时任务目录:/etc/cron.monthly
    1. 系统定时任务的配置文件之一
    2. /etc/crontab
    3. 日志相关文件:
    4. /var/log/cron
    5. /var/log/messages
    6. /var/log/secure
  • 用户定时任务

    • 用户定时任务查看

      1. 列表查看定时任务信息:
      2. crontab -llist
    • 用户定时任务编辑

      1. 编辑配置定时任务信息:
      2. crontab -eedit
    • 定时任务配置文件

      1. /var/spool/cron/root

      root文件表示是root用户设置的定时任务

  • 常见提示信息

    • 相应用户没有编辑定时任务 —— no crontab for root
    • 定时任务编辑错误是否继续 —— Do you want to retry the same edit

3.2 定时任务实践应用

3.2.1 定时任务服务环境准备
  1. 确认定时任务服务是否正在运行

    1. ps -ef|grep crond
    2. /etc/init.d/crond status
  2. 确认定制任务服务是否开机启动

    1. chkconfig|grep crond
    2. chkconfig --list crond

系统当前可以使用定时任务,系统重启后也可以继续使用

3.2.2 实时任务服务应用方法
  1. 配置定时任务服务(crontab -e)

    等价于使用vim命令编辑定时任务配置文件:

    1. 管理用户:vim /var/spool/cron/root
    2. 普通用户:vim /var/spool/cron/oldboy
  2. 查看定时任务信息(crontab -l)

    等价于使用cat命令查看定时任务配置文件:

    1. cat /var/spool/cron/root
  3. 定时任务命令作用

    • 定时任务命令有语法检查功能,配置文件格式不对会报错
    • 定时任务命令使用时方便简单
  4. 定时任务相关文件

    1. 1、定时任务服务配置文件所在目录(重点记忆):
    2. /var/spool/cron
    3. 2、定时任务服务运行记录日志文件(重点记忆):
    4. /var/log/cron
    5. 3、定时任务服务禁止用户运行名单(了解即可):
    6. /etc/cron.deny(定时任务黑名单)

    日志文件信息查看命令:

    1. head: 从头部开始查看文件,默认查看10
    2. -n 指定查看多少行
    3. tail: 从尾部开始查看文件,默认查看10
    4. -n 指定查看多少行
    5. -f : 实时监控文件变化
    6. less: 类似于vim的方式查看文件
    7. more
    8. cat
    9. grep/egrep

    日志记录内容解析如下:

    image

  5. 定时任务编写格式

    • 口诀:什么时间做什么,然后再想下一次什么时候执行 什么时间,做什么事情

      1. cat /etc/crontab

      image

      定时任务书写案例:

      1. 每天的上午830分,来学校上车(go to school):
      2. 30 08 * * * go to school
      3. 每天晚上12点准时,回家自己上床(go to bed):
      4. 00 0 * * * go to bed

      注意:星期几和日期不要同时加上

    • 定时任务中常用符号

      1. *
      2. * * * * * 命令
      3. /n
      4. */10 * * * * 表示每隔十分钟
      5. - 从哪里来到哪里去:
      6. eg: 每天的上午7点到上午11 每一个小时运行CMD命令
      7. 00 07-11 * * * CMD (表示小时的时候要注意分钟)
      8. , 分隔
      9. 00 07-11 * * * --> 00 07,08,09,10,11 * * *

      不要考虑 多久运行一次,直接按照文字把对应的时间写出来 eg:每天 每周 每个月;
      定时任务在表达小时的时候,注意分钟的位置表示需要为整点;

      定时任务符号搭配案例:

      1. 每隔2分钟执行:
      2. */2 * * * *
      3. 每天的246104个小时的第1分钟执行:
      4. 01 2,4,6,10 * * *
      5. 每天的26点执行:
      6. 00 2-6 * * *
      7. 每天的26点中每隔2小时执行:
      8. 00 2-6/2 * * *
      9. 00 02 * * 02 表示每天的2点时执行,但是这天必须是周二
    • 定时任务的编写流程

      定时任务执行命令/脚本规范:

      1. 测试定时执行命令(定时任务执行的命令/脚本必须是绝对路径)

      2. 编写定时任务信息

        1. crontab -e

        定时任务编写时需要按照语法规范:
        编写注释信息——》编写定时任务

      3. 检查定时任务效果

        1. 查看定时任务日志
        2. 查看定时任务效果:
        3. 01. 临时修改定时任务每分钟
        4. 02. 最终修改定时任务的时间
      4. 排查定时任务问题

        1. 查看定时任务日志
        2. 查看定时任务效果
  6. 定时任务编写案例

    • 定时编写文件信息

      每分钟将自己的名字追加到/oldboy/oldboy.txt中:

      1. 01. 测试定时执行命令:
      2. echo "Eason" >>/oldboy/oldboy.txt
      3. 02. 编写定时任务信息:
      4. crontab -e
      5. 编写注释信息 ——> 编写定时任务
      6. # edit name input file
      7. * * * * * echo "Eason" >>/oldboy/oldboy.txt
      8. 03. 检查定时任务效果:
      9. 查看定时任务日志:tail -f /var/log/cron
      10. 查看定时任务效果:tail -f /oldboy/oldboy.txt
      11. 04. 排查定时任务问题:
      12. 查看定时任务日志
      13. 查看定时任务效果

      每分钟显示系统时间(年-月-日_周)追加到/tmp/time.log:

      1. 01. 测试定时执行脚本:
      2. /bin/sh /server/scripts/shell.sh
      3. 创建脚本目录:mkdir -p /server/scripts
      4. 编写脚本内容:date +%F_%w
      5. 02. 编写定时任务信息:
      6. crontab -e
      7. 编写注释信息 ——> 编写定时任务
      8. # edit name input file
      9. * * * * * /bin/sh /server/scripts/shell.sh >>/tmp/time.log
      10. 03. 检查定时任务效果:
      11. 查看定时任务日志:tail -f /var/log/cron
      12. 查看定时任务效果:tail -f /tmp/time.log
      13. 04. 排查定时任务问题:
      14. 查看定时任务日志
      15. 查看定时任务效果
    • 定时重启系统服务

      每天23到第二天7点每隔1小时重启nginx服务:

      1. 01. 测试定时执行命令:
      2. /application/sbin/nginx -s reload
      3. 02. 编写定时任务信息:
      4. crontab -e
      5. 编写注释信息 ——> 编写定时任务
      6. # reboot nginx server
      7. 00 23,00-07/1 * * * /application/sbin/nginx -s reload
      8. 03. 检查定时任务效果:
      9. 查看定时任务日志:tail -f /var/log/cron
      10. 查看定时任务效果:tail -f /oldboy/oldboy.txt
      11. 04. 排查定时任务问题:
      12. 查看定时任务日志
      13. 查看定时任务效果

3.3 总结

定时任务的9句劝告:

①. 定时任务规则之前加注释:表示定时任务在干什么

②. 使用脚本替代命令执行定时任务:超过两条命令,就用脚本,脚本相当于命令的合集

③. 定时任务中date命令%百分号:* * * * * date +%F%T >>/oldboy/time.txt 2>&1

④. 运行脚本一定要用/bin/sh /bin/bash:因为默认脚本没有执行权限

⑤. 定时任务中-命令或脚本结果(正确及错误)定向到黑洞(>/dev/null 2>&1)或追加到文件中 >>/tmp/oldboy.txt 2>&1

⑥. 避免不必要的程序及命令输出

⑦. 打包压缩使用相对路径(切到目标目录的上一级打包目标)

⑧. 定时任务脚本中的程序文件 ,尽量用绝对路径

⑨. 系统与命令位置有关的环境变量问题 :$PATH = /usr/bin:/bin

原文链接:http://www.cnblogs.com/JZjuechen/p/15703645.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号