1.自动备份/etc目录脚本
在日常管理Linux系统的过程中,定期备份重要的配置文件是一项关键任务。为了简化这个过程,我们可以编写一个简单的bash脚本来自动执行备份操作。本文将介绍如何编写一个脚本,该脚本可以接受一个参数,用于选择备份时使用的压缩工具。
脚本功能
脚本的功能如下:
-
接受一个参数,参数值可以是gzip、bzip2或者xz中的一个。
-
如果参数是gzip,则使用tar和gzip压缩/etc目录至/backups目录中,并命名为/etc-日期.tar.gz。
-
如果参数是bzip2,则使用tar和bzip2压缩/etc目录至/backups目录中,并命名为/etc-日期.tar.bz2。
-
如果参数是xz,则使用tar和xz压缩/etc目录至/backups目录中,并命名为/etc-日期.tar.xz。
-
如果参数是其他任意值,则显示错误信息,并执行非正常退出。
编写脚本
以下是脚本的主要内容:
#!/bin/bash # 检查是否传递了参数 if [ $# -eq 0 ]; then echo "错误:请传递参数gzip、bzip2或者xz中的一个" exit 1 fi # 设置备份目录 backup_dir="/backups" # 检查参数的值并执行相应的操作 case $1 in "gzip") tar -czvf "$backup_dir/etc-$(date +%Y%m%d).tar.gz" /etc ;; "bzip2") tar -cjvf "$backup_dir/etc-$(date +%Y%m%d).tar.bz2" /etc ;; "xz") tar -cJvf "$backup_dir/etc-$(date +%Y%m%d).tar.xz" /etc ;; *) echo "错误:无效的压缩工具,请选择gzip、bzip2或者xz" exit 1 ;; esac echo "压缩完成"
2.磁盘空间报警脚本
在管理Linux系统时,及时发现并处理磁盘空间不足问题是非常重要的。为了实现这一目标,我们可以编写一个简单的bash脚本,定期检查根分区的剩余空间,并在空间小于20%时发送邮件报警。这篇博客将介绍如何编写这个脚本,并通过crontab实现定期执行。
编写报警脚本
首先,我们编写一个脚本,用于检查根分区的剩余空间并发送邮件通知。以下是脚本的主要内容:
vim /etc/warning.sh
#!/bin/bash # 设置根分区的挂载点 root_partition="/" # 设置阈值,当剩余空间小于20%时触发报警 threshold=20 # 获取根分区剩余空间百分比 free_space_percent=$(df -h --output=pcent "$root_partition" | tail -n 1 | tr -d '% ') # 检查是否需要触发报警 if [ "$free_space_percent" -lt "$threshold" ]; then # 发送邮件通知 echo "根分区剩余空间低于 $threshold%。当前剩余空间为 $free_space_percent%。请及时处理。" | mail -s "磁盘空间报警" tom@qq.com fi
配置crontab任务
使用crontab可以定期执行我们的报警脚本。以下是设置每5分钟执行一次脚本的crontab任务:
-
打开终端并输入
crontab -e
来编辑crontab文件。 -
在文件末尾添加以下行:
*/5 * * * * /etc/warning.sh
保存并退出编辑器。
安装邮件服务
yum install s-nail -y
配置邮件客户端
vim /etc/s-nail.rc set from=邮箱 set smtp=smtp.qq.com set smtp-auth-user=邮箱 set smtp-auth-password=申请的秘钥 set smtp-auth=login #最后需要wq!强制退出