作者归档:站长

用命令备份/还原mysql数据库

备份:
mysqldump -u root -p a1229142702 > a1229142702-20160207.sql

还原:
mysql -u root -p a1229142702 < a1229142702-20160207.sql

简单说明:
-u参数后面写数据库用户名;
-p后面不要有空格,直接写数据库密码(如 -p123456),也可以不写密码,执行后系统会让输密码;
a1229142702是我网站的数据库名。

使用rsync给网站做增量备份

血的教训让我明白:做网站必须备份!!如果你的主机不带备份功能,可以使用远程服务器做备份,推荐使用rsync增量备份。

增量备份是比较方便可靠的备份方法。所谓增量备份,可以简单理解为,第一次备份的时候传输所有文件,以后再执行备份操作的话,只备份增加的或修改的文件。使用增量备份的好处有很多,对我来说最明显的优点在于,传输文件少,适合大站备份。不用每次打包、下载。。。

贴一下我备份的命令,了解更多请自行百度。

rsync -avzPu /home/wwwroot 198.42.48.69:/root/buyvm-backup

简单说明一下:
-avzP 是参数,大家一般都这么用。
/home/wwwroot 是本地要备份的目录。需要注意的是,/home/wwwroot 和 /home/wwwroot/不完全相同,自己体会一下就明白了。
198.42.48.69:/root/buyvm-backup 是远程服务器目录。

假如想覆盖更新了的同名文件的话,得用-u参数,如:rsync -avzPu

rsync是基于ssh传输的,所以很安全,执行命令以后还需要输入yes,回车,再输入远程服务器的root密码才可以执行。


进阶玩法:

每次执行rsync的时候,都会要求输入远程服务器的密码,其实可以使用sshpass来实现免手动输密码。

首先用下面的命令安装sshpass软件,

yum install sshpass -y

然后在本机以ssh方式,成功登录一次远程服务器,此后sshpass就会自动记录该远程主机的密码了。

ssh root@198.42.48.69

登录进去后,Crtl+D即可登出远程服务器。

此后,我们可以直接执行如下命令,即可实现免手动输密码了,

sshpass -p zhangrui123456 rsync -avzPu /home/wwwroot 198.42.48.69:/root/buyvm-backup

上面的命令中,zhangrui123456是远程服务器的root密码。
特别提醒:如果今后远程服务器重装系统,或者换了IP之类的,一定要删除本地的~/.ssh/known_hosts (或者 /root/.ssh/known_hosts),否则会无法登录。


无人值守玩法:

直接看这篇 https://www.johntitorblog.com/?p=204