shell编程语言介绍,crontab定时任务的使用

本文介绍了Shell编程的基础知识,包括Shell脚本的编写和应用,如监控环境、数据处理和进程自动化。此外,详细阐述了如何使用crontab定时任务,包括启动、停止crond服务以及设置定时任务的语法。最后,通过一个实例展示了如何用Shell脚本实现每天0点切割nginx日志文件。
摘要由CSDN通过智能技术生成

shell简介

Shell是一种脚本语言,又是一种命令语言,可以通俗一点来说,shell脚本就是一系列命令的集合,可以在Unix、LInux上面直接使用,并且直接条用大量系统内部的功能来解释执行程序把一些重复性的工作交给shell做,来实现自动化运维

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

常见的脚步语言

shell、perl、php、python

shell的优点

易用 高效 简单

shell应用场景

  1. 监控linux环境的使用情况
  2. 对数据进行处理
  3. 与数据库的交互
  4. 进程监控,自动化启停
  5. 完成一些重复性的工作

Sheel编写第一个脚本

编写第一个脚本

以sh为结尾的一个文件

[root@xjm opt]# cat first.sh 
#!/bin/bash
#作者:Meimei
#日期:2021-9-11
#功能:this is first shell !
echo "this is my first shell !"
[root@xjm opt]# chmod 755 frist.sh
[root@xjm opt]# sh frist.sh
this is my first shell !

shell脚本与crontab定时器的运用

crond服务:

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

查看crond服务状态的命令

[root@xjm opt]# systemctl status crond.service

crond服务的启停命令

[root@xjm opt]# systemctl start crond.service

[root@xjm opt]# systemctl stop crond.service

crontab定时器的使用
语法:
crontab 【选项】
crontab -l 查询有哪些任务
crontab -e 编写定时器
crontab -r 删除任务

在这里插入图片描述

crontab的例子

在这里插入图片描述

在这里插入图片描述
利用shell脚本实战nginx日志的切割

需求:

  1. nginx的日志文件路径
  2. 每天的0点对nginx日志进行切割
  3. 以前一天日期为命名

shell脚本编写

[root@xjm opt]# cat nginxcut.sh 
#!/bin/bash
#create by meimei
#date:2021-9-11
#Auto cut nginx log script
#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)
[root@xjm opt]# 

查看日志文件名字有无更改

[root@xjm logs]# ll
total 4
-rw-r--r--. 1 nobody root 0 Sep 11 21:11 access_2021-09-10.log
-rw-r--r--. 1 nobody root 0 Sep 11 21:12 access.log
-rw-r--r--. 1 nobody root 0 Sep 11 21:11 error_2021-09-10.log
-rw-r--r--. 1 nobody root 0 Sep 11 21:12 error.log
-rw-r--r--. 1 root   root 5 Sep 11 20:57 nginx.pid

写一个定时任务,每天的0时0分执行

[root@xjm opt]# crontab -e
no crontab for root - using an empty one
0 0 * * * sh /opt/nginxcut.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值