在日常管理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 "压缩完成"
在管理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可以定期执行我们的报警脚本。以下是设置每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!强制退出