在Linux环境下, shell 脚本常用于自动化执行文件备份与压缩的任务。以下是一个简单的示例,展示如何使用 shell 脚本备份 /etc
目录下的所有内容并压缩至 /root/bak
目录:
#!/bin/bash
# 定义源目录、目标目录和备份文件名(包括日期时间戳)
SOURCE_DIR="/etc"
DEST_DIR="/root/bak"
BACKUP_FILE="etc_backup_$(date +%Y%m%d%H%M%S).tar.gz"
# 执行备份与压缩操作
cd "$SOURCE_DIR" || exit
tar -czf "${DEST_DIR}/${BACKUP_FILE}" .
# 可选:清理过期备份(例如,保留最近7天的备份)
find "${DEST_DIR}/" -name "etc_backup_*.tar.gz" -mtime +7 -exec rm {
} \;
echo "Backup of /etc completed and compressed to ${DEST_DIR}/${BACKUP_FILE}"
# 如果需要,你可以添加定时任务设置,让此脚本定期运行
# 如在crontab中添加一行类似:
# 0 0 * * * /path/to/your/script.sh
在这个脚本中:
tar -czf
命令用于创建一个新的归档文件并对其进行gzip压缩。-c
表示创建新归档文件,-z
表示使用gzip压缩,-f
指定归档文件名。$(date +%Y%m%d%H%M%S)
用于获取当前的日期和时间,并将其包含在备份文件名中,以便追踪备份的时间点。find
命令可用于按时间筛选旧的备份文件并删除,这里假设我们只保留最近7天内的备份。
最后,提醒一句,实际在生产环境中运行此类脚本之前,务必进行充分的测试和验证,确保脚本的安全性和正确性。