今天需要用到备份网站,写了个脚本,备份了mysql和redis数据。
#!/bin/bash BACKDIR="/home/tan/getll_backup" if [ ! -d $BACKDIR ]; then mkdir $BACKDIR fi; BACKDIR_TMP=$BACKDIR"/backup" if [ -d $BACKDIR_TMP ]; then echo 临时目录存在... else mkdir $BACKDIR_TMP echo 创建临时目录成功... fi SUFFIX=$(date +%y%m%d) backupFileName=$BACKDIR_TMP/mysql_$SUFFIX.sql mysqldump -uroot -p0000 GetLL > $backupFileName echo 备份数据库完成... # 带属性复制 cp -a /var/lib/redis/appendonly.aof /var/lib/redis/dump.rdb $BACKDIR_TMP echo 备份redis完成... # 使用tar, 这里最好不要使用绝对路径 echo 进行打包... cd $BACKDIR && tar -czvpf back_$SUFFIX.tar.gz backup/ # 删除临时目录 rm -r backup echo 删除临时目录成功 echo 备份完成
接下来需要做的就是定时执行。
sudo crontab -e 编辑cron命令, 写入:
0 6 * * * sh ~/getll_auto_backup.sh >> /var/log/getll/cron.log
其中 sudo 表示的是使用 root来执行,这时 ~ 表示的是 /root 目录。
这条命令的意思是每天6点执行 sh ~/getll_auto_backup.sh 这条命令,而把输出重定向到 /var/log/getll/cron.log, 具体的可以谷歌 cron 命令。