linux 下的 shell脚本 编程

mac2024-11-22  27

linux 下的 shell脚本 编程

1、shell编程语言的介绍1.1、shell简介1.3、常见的脚本语言:1.4、shell的优点:1.5、shell应用场景: 2、shell脚本实例2.1、编写2.2、执行 3、shell脚本与crontab定时器的运用3.1、crond服务3.2、crond服务的启停命令3.3、crontab定时器的使用3.4、crontab的例子 4、利用shell脚本对nginx日志切割4.1、需求4.2、脚本

1、shell编程语言的介绍

简介:shell脚本的重要性与应用场景

1.1、shell简介

Shell是一种脚本语言,又是一种命令语言。可以通俗一点来讲,Shell脚本就是一系列命令的集合,可以在Unix/linux上面直接使用,并且直接调用大量系统内部的功能来解释执行程序把一些重复性工作交给shell做,来实现自动化运维。 Shell 虽然没有C/C++、Java、Python等强大,但也支持了基本的编程元素。例如:if、for、while、case等循环,还有变量、数组、字符串、注释、加减乘除逻辑运算等

1.3、常见的脚本语言:

shell、perl、php、python

1.4、shell的优点:

易用 #直接在linux系统上使用,不需要编译高效 #程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务简单 #语法和结构比较简单,易于掌握

1.5、shell应用场景:

监控linux系统的健康度数据的处理 #日志的切割、分析、统计等与数据库交互 #对数据库进行增,删,改,查等操作监控进程,自动化启停服务完成一些重复性的工作

2、shell脚本实例

2.1、编写

vi first.sh # !/bin/bash # 作者:fbiao # 编写时间:2019-10-1 # 功能:this is shell ! echo "this is my first shell !"

2.2、执行

sh first.sh chmod 755 first.sh ./first.sh

3、shell脚本与crontab定时器的运用

简介:工作中crontab定时器的重要性

3.1、crond服务

以守护进程方式在无需人工干预的情况下来处理着一系列作业和指令的服务

3.2、crond服务的启停命令

启动 systemctl start crond.service 查看状态: systemctl status crond.service 停止 systemctl stop crond.service 重新启动 systemctl restart crond.service

3.3、crontab定时器的使用

语法:crontab 【选项】 crontab -l #列出crontab有哪些任务 crontab -e #编辑crontab任务 crontab -r #删除crontab里的所有任务 内容格式: * * * * * 级别 命令 分 时 日 月 周

3.4、crontab的例子

每分钟执行 * * * * * 或者 */1 * * * * 每小时执行 0 * * * * 每天执行 0 0 * * * 每周执行 0 0 * * 0 每月执行 0 0 1 * * 每年执行 0 0 1 1 * 每天早上6点执行 0 6 * * * 每两个小时执行 0 */2 * * * 每小时的10分,40分执行 10,40 * * * * 每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令 5,15,25,35,45,55 16,17,18 * * *

4、利用shell脚本对nginx日志切割

简介:nginx服务器日志定时切割

4.1、需求

nginx的日志文件路径每天0点对nginx 的access与error日志进行切割以前一天的日期为命名

4.2、脚本

#!/bin/bash #Auto cut nginx log script. #create by fbiao #create date:2019-10-11 #nginx日志路径 logs_path=/usr/local/nginx/logs YesterDay=$(date -d 'yesterday' +%Y-%m-%d) #移动日志并以日期改名 mv ${logs_path}/access.log ${logs_path}/access_${YesterDay}.log mv ${logs_path}/error.log ${logs_path}/error_${YesterDay}.log #向nginx主进程发送信号,重新生成日志文件 kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
最新回复(0)