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。
稍等片刻就可以在邮箱中收到邮件。