SHELL脚本练习

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任务:

  1. 打开终端并输入 crontab -e 来编辑crontab文件。

  2. 在文件末尾添加以下行:

*/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!强制退出

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值