首页 > 社交 > 科普中国

linux下的shell脚本编程介绍

常驻编辑 科普中国 2022-09-22 脚本   定时器   语法   路径   实战   脚本语言   进程   命令   系统   日志

shell编程语言的介绍

  • shell简介:

Shell是一种脚本语言,又是一种命令语言。可以通俗一点来讲,Shell脚本就是一系列命令的集合,可以在Unix/linux上面直接使用,并且直接调用大量系统内部的功能来解释执行程序把一些重复性工作交给shell做,来实现自动化运维。hV9拜客生活常识网

Shell 虽然没有C/C++、Java、Python等强大,但也支持了基本的编程元素。例如:if、for、while、case等循环,还有变量、数组、字符串、注释、加减乘除逻辑运算等hV9拜客生活常识网

  • 常见的脚本语言:

shell、perl、php、pythonhV9拜客生活常识网

  • shell的优点:

易用 #直接在linux系统上使用,不需要编译hV9拜客生活常识网

高效 #程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务hV9拜客生活常识网

简单 #语法和结构比较简单,易于掌握hV9拜客生活常识网

  • shell应用场景:

监控linux系统的健康度hV9拜客生活常识网

数据的处理 #日志的切割、分析、统计等hV9拜客生活常识网

与数据库交互 #对数据库进行增,删,改,查等操作hV9拜客生活常识网

监控进程,自动化启停服务hV9拜客生活常识网

完成一些重复性的工作hV9拜客生活常识网

shell编写第一个脚本

  • 编写:vi first.sh
# !/bin/bash
# 作者:菜园子
# 编写时间:2022-09-21
# 功能:我的第一个shell脚本
echo "this is my first shell !"
  • 执行:
sh first.sh
chmod 755 first.sh
./first.sh


hV9拜客生活常识网

hV9拜客生活常识网

企业实战之shell脚本与crontab定时器的运用

  • crond服务:

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

  • 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日志切割

需求:hV9拜客生活常识网

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

脚本:hV9拜客生活常识网

#!/bin/bash
#Auto cut nginx log script.
#Create by Cyz
#Create date : 2022-09-21

#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)


hV9拜客生活常识网

hV9拜客生活常识网

个人博客:cyzhV9拜客生活常识网

相关阅读:

  • 油猴怎么用(x浏览器怎么用油猴脚本)
  • 按键精灵怎么写脚本(按键精灵脚本办公实例)
  • 脚本哪个好(手游脚本app)
  • 如何写脚本(自己怎么写脚本)
  • 如何编写脚本(新手怎么写脚本)
  • ie浏览器如何升级(win10当前页面脚本发生错误)
  • 脚本是什么意思(短视频脚本范文)
  • kubernetes上部署
  • liunx中jar包启动脚本
  • 我做开发测试犯的错
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。