几个小 shell 脚本实战学习

这篇博客详细介绍了多个Linux Shell脚本实战案例,包括检查服务器运行状态、根据成绩评估学生表现、定时备份数据库、打包日志文件、检测网络中关机服务器IP、批量创建用户及设置随机密码,以及自动化备份MySQL数据库和启动Nginx服务的脚本。通过这些实例,读者可以提升Shell脚本编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实战 1:编写脚本检查服务器运行状态

[root@tiehao64 ~]# vim status.sh

#!/bin/bash

if [ $# -ge 1 ] ;then

systemctl status $1 > /dev/null

if [ $? -eq 0 ] ;then

echo "$1 服务正常运行"

else

systemctl start $1

echo "$1 服务没有运行,已经尝试启动该服务"

fi

else

echo "执行脚本的格式"

echo "sh $0 服务名"

fi

[root@tiehao64 ~]# systemctl stop rsyslog

[root@tiehao64 ~]# sh status.sh rsyslog

rsyslog 服务没有运行,已经尝试启动该服务

[root@tiehao64 ~]# sh status.sh rsyslog

rsyslog 服务正常运行

实战 2: 根据学生的成绩判断学生的优劣

[root@tiehao63 ~]# vim check_cj.sh

#!/bin/bash

read -p "请输入你的成绩 " cj

if [ $cj -ge 0 ] && [ $cj -le 59 ] ;then

echo "补考"

elif [ $cj -ge 60 ] && [ $cj -le 70 ] ;then

echo "良好"

elif [ $cj -ge 71 ] && [ $cj -le 85 ] ;then

echo "好"

elif [ $cj -ge 86 ] && [ $cj -le 100 ] ;then

echo "优秀"

else

echo "成绩的有效范围是 0-100 之间"

fi

实战 3:每周一晚上 3:00 ,备份数据库服务器上 webdb 库的所有数据到系统的/mysqlbak 目录里,使用系统日期做备份文件名。

[root@tiehao63 ~]# vim mysqlbak.sh

#!/bin/bash

baknamefile=`date +%Y-%m-%d`

bakdir=/mysqlbak

user=root

password=123

dbname=webdb

[ -d $bakdir ] || mkdir $bakdir

mysqldump -u$user -p$password --flush-logs $dbname > $bakdir/${baknamefile}-webdb.sql

备份/etc 目录的实验:

[root@tiehao63 ~]# vim etcbak.sh

#!/bin/bash

baknamefile=`date +%Y-%m-%d`

bakdir=/etcbak

srcdir=/etc

[ -d $bakdir ] || mkdir $bakdir

tar czvf ${bakdir}/${baknamefile}-etc.tar.gz ${srcdir}

echo "===================================="

ls -lh ${bakdir}/${baknamefile}-etc.tar.gz

echo "back etc is ok!"

[root@tiehao63 ~]# chmod +x etcbak.sh

[root@tiehao63 ~]# ./etcbak.sh

[root@tiehao63 ~]# crontab -e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值