centos

centos定时器如何备份配置

小樊
35
2025-11-18 01:55:48
栏目: 智能运维

备份范围与思路

备份与恢复的常用命令

自动化备份脚本示例

#!/bin/bash
set -euo pipefail

BAK_DIR="/backup/crontab_bak"
DATE=$(date +%F)
KEEP_DAYS=7

# 创建备份目录
mkdir -p "$BAK_DIR"

# 备份当前用户与 root 的 crontab
crontab -l > "$BAK_DIR/crontab_$DATE.bak" 2>/dev/null || true
sudo crontab -l > "$BAK_DIR/root_crontab_$DATE.bak" 2>/dev/null || true

# 备份系统级任务与日志
sudo cp -a /etc/crontab "$BAK_DIR/crontab_$DATE.bak"
sudo cp -a /etc/cron.d "$BAK_DIR/cron.d_$DATE"

# 可选:备份日志(若日志轮转导致当天文件不存在,可跳过或改为拷贝归档)
sudo cp -a /var/log/cron "$BAK_DIR/cron_$DATE.log" 2>/dev/null || true

# 打包归档
tar czf "$BAK_DIR/crontab_bak_$DATE.tar.gz" -C "$BAK_DIR" .

# 清理超过保留天数的备份
find "$BAK_DIR" -name "crontab_bak_*.tar.gz" -mtime +$KEEP_DAYS -delete
find "$BAK_DIR" -name "crontab_*.bak" -mtime +$KEEP_DAYS -delete
find "$BAK_DIR" -name "root_crontab_*.bak" -mtime +$KEEP_DAYS -delete
find "$BAK_DIR" -name "cron.d_*" -mtime +$KEEP_DAYS -delete
find "$BAK_DIR" -name "cron_*.log" -mtime +$KEEP_DAYS -delete

echo "Crontab backup completed: $BAK_DIR/crontab_bak_$DATE.tar.gz"

校验与注意事项

0
看了该问题的人还看了