有趣的Shell脚本学习
  HL7exJhKg9j2 2023年11月30日 77 0

有趣的Shell脚本学习


倒计时脚本

#!/bin/bash
echo 20秒倒计时开始:
tput sc


# 循环40秒
for count in `seq 0 20`
do
  tput rc
  tput ed
  echo -n `expr 20 - $count`
  sleep 1
done
echo " 20秒倒计时结束!"

解释

tput 的作用
tput是一个用于操作终端的Linux/Unix shell内置命令,用于设置终端的颜色、大小、位置等属性,
以及让用户更加方便地操作终端。如移动光标、清屏、设置颜色等。

tput sc:tput sc是控制台控制终端的一个命令,用于保存当前控制台的光标位置。
tput rc:tput rc是控制台控制终端的一个命令,用于恢复之前保存的控制台光标位置。
tput ed:tput ed是控制台控制终端的一个命令,用于清除从当前光标位置到屏幕末尾的所有文本。

来源:

生成随机数(密码)

head -n 32 /dev/urandom | tr -dc "a-zA-Z0-9@#$%^&*" | head -c 32 && echo

# 注意可以添加不同的特殊字符来进行选用.

判断是否存在内容在执行操作

log=/usr/nginx/log/error.log
N=30 #设定阈值
while :do
 #查看访问日志的最新300条,并统计502的次数
    err=`tail -n 300 $log |grep -c '502" '` 
if [ $err -ge $N ] 
then
/usr/nginx/nginx -s reload 
#设定60s延迟防止脚本bug导致无限重启php-fpm服务
     sleep 60
 fi
 sleep 10
 done

判断文件是否存在, 然后创建新文件.

while true
do
if [ -f "/zhaobshresult/result1.ok" ] && [ -f "/zhaobshresult/result2.ok" ] ; then
    echo "文件存在"
    touch /zhaobshresult/result.ok
    exit 2
else
    echo "文件没有全部存在, 等待一秒继续检查"
fi
sleep 1
done

按照文件大小进行拆分. 分为两个目录.

du -ahd 1 |grep sql$ |sort -k1h |awk '{print $2}' >list
num=0
mkdir -p a
mkdir -p b
for i in `cat list` ; do
let num=num+1
if (($num % 2 == 1))  ; then
mv $i a
else
mv $i b
fi ;
done

判断文件是否存在然后切分文件名

while true ;
do
if [ -f "data.ok" ] ; then
 du -ahd 1 |grep txt$ |sort -k1h |awk '{print $2}' |cut -c 3- >list
echo "" >AE1.ok1
echo "" >AE2.ok1
num=0
for i in `cat list` ; do
let num=num+1
if (($num % 2 == 1))  ; then
echo $i >> AE1.ok1
else
echo $i >> AE2.ok1
fi ;
done
mv -f AE1.ok1 AE1.ok
mv -f AE2.ok1 AE2.ok
echo "AE1.ok和AE2.ok.  均已经准确生成."
exit 2
fi
echo "未监测到 data.ok. 继续进行循环"
sleep 1
done



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月30日 0

暂无评论

推荐阅读
HL7exJhKg9j2