Shell 虽然没有C/C++、Java、Python等强大,但也支持了基本的编程元素。例如:if、for、while、case等循环,还有变量、数组、字符串、注释、加减乘除逻辑运算等
常见的脚本措辞:shell、perl、php、python
易用 #直接在linux系统上利用,不须要编译

高效 #程序开拓的效率非常高,依赖于功能强大的命令可以迅速地完成开拓任务
大略 #语法和构造比较大略,易于节制
shell运用处景:监控linux系统的康健度
数据的处理 #日志的切割、剖析、统计等
与数据库交互 #对数据库进行增,删,改,查等操作
监控进程,自动化启停做事
完成一些重复性的事情
shell编写第一个脚本编写:vi first.sh# !/bin/bash# 作者:菜园子# 编写韶光:2022-09-21# 功能:我的第一个shell脚本echo "this is my first shell !"
实行:
sh first.shchmod 755 first.sh./first.sh
企业实战之shell脚本与crontab定时器的利用crond做事:
以守护进程办法在无需人工干预的情形下来处理着一系列作业和指令的做事
crond做事的启停命令启动systemctl start crond.service查看状态:systemctl status crond.service停滞systemctl stop crond.service重新启动systemctl restart crond.service
crontab定时器的利用
语法:crontab 【选项】crontab -l #列出crontab有哪些任务crontab -e #编辑crontab任务crontab -r #删除crontab里的所有任务内容格式: 级别 命令分 时 日 月 周
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
利用shell脚本企业实战nginx日志切割
需求:
nginx的日志文件路径每天0点对nginx 的access与error日志进行切割以前一天的日期为命名脚本:
#!/bin/bash#Auto cut nginx log script.#Create by Cyz#Create date : 2022-09-21#nginx日志路径logs_path=/usr/local/nginx/logsYesterDay=$(date -d 'yesterday' +%Y-%m-%d)#移动日志并以日期改名mv ${logs_path}/access.log ${logs_path}/access_${YesterDay}.logmv ${logs_path}/error.log ${logs_path}/error_${YesterDay}.log#向nginx主进程发送旗子暗记,重新天生日志文件kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
个人博客:cyz