- 通过位置变量创建 Linux 系统账户及密码
#!/bin/bash
for i in {1…5}
do
cat /etc/passwd|grep user$i
if [ $? -eq 0 ];then
echo “用户已存在”
else
a=openssl rand -base64 8
passwd=echo ${a:5:0}
useradd user$i
echo "$passwd" |passwd --stdin user$i
echo -e "\033[31m 用户: user$i 密码: $passwd \033[0m">>passwd.txt
fi
done - 每周 5 使用 tar 命令备份/var/log 下的所有日志文件
tar -czf log-date +%Y%m%d
.tar.gz /var/log
]# crontab -e -u root
00 03 * * 5 /root/logbak.sh - 监控本机内存和硬盘剩余空间,剩余内存小于 500M、根分区剩余空间小于 1000M
时,发送报警邮件给 root 管理员
#!/bin/bash
#提取根分区剩余空间disk_size=$(df | awk 'NR==2{print $4}')
#提取内存剩余空间mem_size=$(free | awk 'NR==2{print $4}')
while :
do
注意内存和磁盘提取的空间大小都是以 Kb 为单位
if [ $disk_size -le 512000 -a $mem_size -le 1024000 ]
then
mail ‐s “Warning” root <<EOF
Insufficient resources,资源不足
EOF
fi - 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了,
猜小了或猜大了,直至用户猜对脚本结束。
num=$[RANDOM%100+1]
while :
do
read -p "计算机生成了一个 1-100 的随机数,你猜: " cai
if [ $cai -eq $num ];then
echo “恭喜,猜对了”
exit
elif [ $cai -gt $num ];then
echo “Oops,猜大了”
else
echo “Oops,猜小了”
fi
done - 检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不
是,则提示您非管理员(使用字串对比版本)
if [ $USER == “root” ]
then
yum ‐y install vsftpd
else
echo “您不是管理员,没有权限安装软件”
fi - 依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字
#!/bin/bash
read -p “请输入一个整数:” num1
read -p “请输入一个整数:” num2
read -p “请输入一个整数:” num3
#不管谁大谁小,最后都打印 echo “num2,$num3”
#num1 中永远存最小的值,num2 中永远存中间值,num3 永远存最大值
tmp=0if [ $num1 -gt $num2 ];then
tmp=$num1
num1=$num2
num2=$tmp
fiif [ $num1 -gt $num3 ];then
tmp=$num1
num1=$num3
num3=$tmp
fiif [ $num2 -gt $num3 ];then
tmp=$num2
num2=$num3
num3=$tmp
fi
echo “排序后数据为:num2,$num3” - 编写批量修改扩展名脚本
#!/bin/bash
for i inls *.$1
do
echo $1
name=echo $i |awk -F '.' '{print $1}'
mv $i $name.$2
done - 切割 Nginx 日志文件(防止单个文件过大,后期处理很困难
#!/bin/bash
logs_path="/usr/local/nginx/logs"
pid_path="/usr/local/nginx/logs/nginx.pid"
mv ${logs_path}access.log KaTeX parse error: Expected group after '_' at position 17: …log_path}access_̲(date +"%Y-%m-%d").log
ss -ntlp |grep nginx
if [ $? -eq 0 ];then
/usr/local/nginx/sbin/nginx -s reload
else
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s reload
fi
echo “00 00 00 00 00 /bin/bash /root/shell/nginx_log.sh” >> /var/spool/cron/root
#!/bin/bash
for i in {1…10}
do
curl -I -m 10 -o /dev/null -s -w %{http_code} http://10.0.0.11
done - 检测 MySQL 数据库连接数量,超过500时报警并发送邮件给管理员
a=mysqladmin -uroot -p123 status|awk '{print $4}'
if [ $a -gt 500 ];then
mail -s Warning root <<EOF
Insufficient resources,资源不足
EOF
fi
来源:CSDN
作者:封狼万霍
链接:https://blog.csdn.net/weixin_46161405/article/details/103918504