Shell脚本小练习

文章介绍了如何编写一个脚本,根据传递的参数gzip、bzip2或xz进行归档压缩,并实现报警功能,当根分区剩余空间低于20%时发送告警邮件。同时,脚本通过crond定时每5分钟执行一次检查。
摘要由CSDN通过智能技术生成

1.写一个脚本,完成如下功能 传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一;

(1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz;

(2) 如果参数1的值为bzip2,则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2;  

(3) 如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz;

(4) 其它任意值,则显示错误压缩工具,并执行非正常退出;

方法一:if

根据参数1的值来判断对应的操作:

将每个参数都尝试一遍后查看/backups目录:

同时在随便传入一个参数会提示错误压缩工具:

方法二:case

当参数1匹配上某一个分支时就执行对应分支内的命令:

2.报警脚本,要求如下:
    根分区剩余空间小于20%
   发送告警邮件给自己
   配合crond每5分钟检查一次脚本

这题的难点在于怎样获取根分区的剩余空间大小

使用命令

df -h /

可以查看根分区磁盘信息

命令

tr -s " " " "

可以将得到的结果中的多余空格删除

可以看到有两行数据,我们需要的是第二行的数据,使用命令

tail -1

获取第二行,也是倒数第一行数据。

我们需要当中第五段的数据,可以使用下面这个命令获取。

cut -d " " -f 5

这样我们就获得了根分区已占用空间的大小。

接下来在shell脚本中判断,如果已占用空间大于80%,那就代表剩余空间小于20%,需要发送“根分区剩余空间小于20%”,否则发送内存充足。

接下来就是使用crond每隔五分钟执行一次shell脚本。

使用crontab -e命令做如下配置

*/5 * * * * /root/test/test3.sh

这样就可以每五分钟执行一次特殊test3.sh。

稍等片刻就可以在邮箱中收到邮件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值