编写一个shell脚本 备份nginx配置文件/usr/local/nginx/conf/nginx.conf ,检测到文件变化时备份,加入定时
时间: 2023-08-16 22:09:08 浏览: 62
任务每天凌晨3点执行。
好的,以下是备份nginx配置文件的shell脚本:
```
#!/bin/bash
# 备份目录
BACKUP_DIR="/var/backups/nginx"
# Nginx 配置文件路径
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
# 当前时间
DATE=$(date +%Y-%m-%d_%H-%M)
# 备份文件名
BACKUP_FILE="$BACKUP_DIR/nginx.conf.$DATE"
# 新旧配置文件的 MD5 值
NEW_MD5=$(md5sum $NGINX_CONF | awk '{print $1}')
OLD_MD5=""
# 如果备份目录不存在则创建
if [ ! -d $BACKUP_DIR ]; then
mkdir -p $BACKUP_DIR
echo "Created backup directory: $BACKUP_DIR"
fi
# 备份文件
backup_conf_file() {
echo "Backing up Nginx config file to $BACKUP_FILE..."
cp -p $NGINX_CONF $BACKUP_FILE
echo "Backup completed successfully."
}
# 定时任务
check_conf_change() {
echo "Checking Nginx config file for changes..."
OLD_MD5="$NEW_MD5"
NEW_MD5=$(md5sum $NGINX_CONF | awk '{print $1}')
if [ "$NEW_MD5" != "$OLD_MD5" ]; then
backup_conf_file
else
echo "No changes detected."
fi
}
# 第一次备份
backup_conf_file
# 每隔一定时间定时检查
while true; do
check_conf_change
sleep 86400 # 一天,单位为秒
done
```
这个脚本会先备份一次nginx配置文件,然后每隔一天执行一次定时任务,检查配置文件有没有发生变化,如果有变化则备份新的配置文件。后面的 `sleep` 语句表示每次任务执行后要等待的时间(以秒为单位)。