Linux数据备份

今天需要用到备份网站,写了个脚本,备份了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 命令。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。