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) 其它任意值,则显示错误压缩工具,并执行非正常退出;
#!/bin/bash
# 检查参数数量是否正确
if [ $# -ne 1 ]; then
echo "Usage: $0 [gzip|bzip2|xz]"
exit 1
fi
# 获取当前日期作为压缩文件名的一部分
date=$(date +%Y%m%d)
# 根据参数值选择压缩工具
case $1 in
"gzip")
tar czf /backups/etc-${date}.tar.gz /etc
;;
"bzip2")
tar cjf /backups/etc-${date}.tar.bz2 /etc
;;
"xz")
tar cJf /backups/etc-${date}.tar.xz /etc
;;
*)
echo "错误的压缩工具"
exit 1
;;
esac
2.报警脚本,要求如下: 根分区剩余空间小于20% 发送告警邮件给自己 配合crond每5分钟检查一次脚本
#!/bin/bash
# 获取根分区剩余空间百分比
free_space=$(df / | awk 'NR==2 {print $5}' | cut -d'%' -f1)
# 如果剩余空间小于20%,发送邮件告警
if [ $free_space -lt 20 ]; then
echo "根分区剩余空间不足 20%,请及时处理。" | mail -s "磁盘空间告警" your_email@example.com
fi