shell示例3
Table of Contents
示例 1
显示统计占用系统内存最多的进程,并排序.
ps -aux|sed '1d'|sort -k 6 -nr
示例 2
编写脚本,使用 for 和 while 分别实现 192.168.0.0/24 网段内,地址是否能够 ping 通,若 ping 通则输出"success!",
若 ping 不通则输出"fail!"
# 设定IP地址的网段
PREFIX=192.168.10
FRONT=1
END=10
# 开始ping,每个IP只ping 1次每次不超过1s.
for IP in $(seq $FRONT $END);do
ping -c 1 -w 1 $PREFIX.$IP &> /dev/null \
&& echo -e $PREFIX.$IP 'success!'\
|| echo -e $PREFIX.$IP 'fail!' &
done
# 当3s后可以确保完成,回车返回命令行提示符
sleep 3
echo
示例 3
每周的工作日 1:30,将/etc 备份至/backup 目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,
其中日期是前一天的时间
# %F:输出yyyy-mm-dd %H:输出HH
echo '30 1 * * 1,2,3,4,5 tar -Jcvf /backup/etcbak-$(date +%F-%H -d yesterday).tar.xz /etc'\
>> /etc/crontab
示例 4
工作日时间,每 10 分钟执行一次磁盘空间检查,一旦发现任何分区利用率高 于 80%,就发送邮件报警
-
写脚本/usr/local/bin/diskcheck.sh
MAX_US=$(df|sed '1d'|sort -k 5 -nr|sed -nr '2,$d;s#.* ([[:digit:]]{1,3})%.*#\1#p') # 磁盘最大利用率 THRESHOLD=80 # 阀值 # 达到阀值发送所有磁盘使用情况给root test $MAX_US -gt $THRESHOLD && \ mailx root <<EOF disk will be full !!!!!!!!!!!!! $(df|sed -rn '/^\/dev\/(mapper|sd)/s#(^[^ ]*).* ([[:digit:]]{1,3}%).*#\2:\1#p'|sort -k 1 -t ':' -nr) EOF -
更改 crontab
echo '*/10 * * * 1,2,3,4,5 /usr/local/bin/disk_check.sh' >> /etc/crontab

浙公网安备 33010602011771号