VPS推荐 - 定时备份 https://www.vpstry.com/tag/定时备份 linux下利用rsync与crontab定时备份文件夹(本地备份篇) https://www.vpstry.com/archives/82.html 2017-01-17T00:01:00+08:00 一般我们做站的时候,都要注意备份问题。毕竟数据是一个站长的命根子。当然,如果条件允许,我还是建议使用一台专门的备份服务器来进行异地备份。当然,这种本地备份也是有点需求的,例如在站长缺经费的情况下开不起专门的一台备份服务器,亦或者是经常会对代码进行修改的站长。本地备份自然是有他的需求,虽然我个人认为作用并不是那么的明显。这篇文章主要采用的办法是rsync和crontab进行结合,crontab我在之前的有一篇mysql备份的文章里也同样使用了这东西来进行定时任务设置。这篇文章类型也差不多,不过RSYNC精华是在网络异地同步备份上,但这篇文章我不扯这么多,以后我会专门写一篇文章介绍怎么使用RSYNC。首先,我们自然要先安装RSYNC了,当然,安装都还算是比较简单的。我们都可以使用系统自带的包管理器进行安装,例如在Debian/ubuntu下我们可以使用以下命令进行安装:apt-get install rsync -y 当然,在centos下我们可以使用:yum install rsync 接下来我们先得建立起一个sh脚本,例如我们要在/root目录下建立一个filebackup.sh的脚本:vim /root/filebackup.sh 然后在脚本文件内贴上以下内容:rsync -avzP --delete /home/wwwroot/www.vpstry.com/ /home/backup/www.vpstry.com/ 这里我解释一下这句代码的参数都有什么效果,在第一次复制的时候会进行全量复制,从/home/wwwroot/www.vpstry.com/复制到/home/backup/www.vpstry.com/文件夹,并同步所有信息。如果/home/wwwroot/www.vpstry.com/下已经删除的文件,那在同步过程中也会一并删除/home/backup/www.vpstry.com/下同样的文件。当然,你可以去掉--delete参数就不会进行删除了。但如果是修改的话,会一并替换,并不会删除。接下来我们要新建一个备份用的文件夹:mkdir /home/backup mkdir /home/backup/www.vpstry.com 接下来我们要修改一下这个脚本的执行权限:chmod +x /root/filebackup.sh 最后我们打开Crontab添加定时任务。crontab -e 在最后一行添加上:5 3 * * * /root/filebackup.sh 这意思就是在每天凌晨的3点05分的时候执行这个脚本。当然,到这里也就完成了。当然,rsync的作用并不只是这么一点,之后我会写出一篇详细的RSYNC的使用方法。 Linux使用crontab和mysqldump脚本定时备份mysql数据库 https://www.vpstry.com/archives/65.html 2017-01-06T19:45:00+08:00 在一般的建站或者项目环境中,备份是一个很重要的东西。正所谓数据是一个站长的命根子,手握备份才能无惧任何突发状况。其中当属SQL备份最为关键。当然SQL备份的办法多种多样,但使用mysqldump这个官方提供的工具来实行全量导出算是一个比较稳妥的办法之一。今天我要介绍的这种方法就是一种常见的mysql备份方案。当然你也可以与其他备份方法一同使用。首先我们需要在系统中安装Crontab。crontab是一个linux上常见的定时计划任务工具,是一个linux上运维最常用的运维工具。基本上绝大多数的VPS或者服务器Linux系统中都默认安装了corn。如果碰上没有安装过的,可以使用下面的命令安装。Centos:yum install -y vixie-cron Debian/Ubuntu:apt-get install cron 当然,在第一次使用cron的时候会让你选择编辑器。如果我选错编辑器了该怎么办?用以下命令还能反悔:select-editor 首先我们需要建立新建一个shell脚本。我们可以在root目录下用vim编辑器新建一个。vim /root/mysqldump.sh 接着我们可以把以下内容稍微修改一下,贴进去。#!/bin/sh DUMP=/usr/bin/mysqldump #这个是mysqldump的位置,一般默认都安装在这,如有其他位置需要修改 OUT_DIR=/home/sqlbackup #这个是我们保存sql备份文件的文件夹,按需修改 LINUX_USER=root #这个是要使用的Linux用户,一般我们都用最高权限root帐号来备份 DB_NAME=vpstry #这个是要备份的数据表,按需修改 DB_USER=root #这个是我们要使用的SQL用户,一般我们都使用root最高权限来进行备份 DB_PASS=123456 #这个是SQL帐号的密码 DAYS=15 #这个是文件保存的最长时间,超过这个时间的文件都会被清除 cd $OUT_DIR DATE=`date +%Y%m%d%H%M` OUT_SQL=$DATE.sql TAR_SQL="bak_$DATE.tar.gz" #这个是备份文件用的名字 $DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables>$OUT_SQL tar -czf $TAR_SQL ./$OUT_SQL rm $OUT_SQL chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL find $OUT_DIR -name "bak*" -type f -mtime +$DAYS -exec rm {} \; #这里的bak要与上面用的名字对应,不然无法清除超过15天的备份文件 这样我们就写好了一个shell脚本,在使用之前我们还得先确认被蜂拥的文件夹建立了没有。用下面的这条命令建立备份文件夹/sqlbackup:mkdir /home/sqlbackup 接下来我们要修改mysqldump.sh的权限:chmod +x /root/mysqldump.sh 接下来我们要把脚本执行添加进crontab中让他定时执行。crontab -e 假如我们要在每天凌晨2点30的时候定时备份mysql,那我们要在最下面添加一条这样的任务:30 02 * * * /root/mysqldump.sh 这里的30 02是时间,意思就是凌晨2点30分的时候执行这个脚本。我们可以根据需要修改。当然,到这里我们就部署完毕了。不过我们也是可以先测试下脚本能不能使用:./root/mysqldump.sh 或bash /root/mysqldump.sh