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) 其它任意值,则显示错误压缩工具,并执行非正常退出;
1.1 检查安装包
[root@redhot ~]# yum install tar -y
1.2 编写文件
vi bandzip.sh
#!/bin/bash
# 获取参数
arg1=$1
# 判断参数
if [ "$arg1" = "gzip" ]; then
# 使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz
tar -zcvf /backups/etc-20160613.tar.gz /etc
elif [ "$arg1" = "bzip2" ]; then
# 使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2
tar -jcvf /backups/etc-20160613.tar.bz2 /etc
elif [ "$arg1" = "xz" ]; then
# 使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz
tar -Jcfv /backups/etc-20160613.tar.xz /etc
else
# 显示错误压缩工具,并执行非正常退出
echo "错误压缩工具"
exit 1
fi
2.报警脚本,要求如下:
根分区剩余空间小于20%
发送告警邮件给自己
配合crond每5分钟检查一次脚本
2.1安装相应软件包
yum install crond
systemctl restart cronf
2.2 创建一个新文件
vi alert.sh
#!/bin/bash
# 获取根分区剩余空间
root_free_space=$(df -h / | cut -d " " -f 4)
# 检查根分区剩余空间是否小于 20%
if [ "$root free_space" -lt "20%" ]; then
# 发送告警邮件
echo "Root partition usage is below 20%. " | mail -s "Root Partition Alert" 1982177787@qq.com
fi
2.3打开循环控制文件
crontab -e
输入:
*/5**** /bin/basn /root/1.sh
2.4 同时我们也可以给文件一个执行权限
chmod +x /xxx/xxx.sh