1、sftp 自动备份备份方式双重备份。即网站服务器本机备份和本地专用存储服务器备份。传输方式数据文件以 sftp 方式进行传输 优点:更安全。加密传输认证信息和传输的数据 缺点:效率低。使用了加密/解密技术,传输效率比普通的 FTP 要低得多。基本安装与配置以 192.168.30.129 模拟网站服务器,192.168.30.128 模拟本地专用备份数据服务器。(1 ) 两台服务器使用 yum 安装 vsftpd 、ftp 并开启 vsftpd 服务/添加 iptables 协议,开方 21 端口(2 ) 对 vsftpd.conf 文件进行配置,如下:rootCentOS2 vsftpd#
2、vi /etc/vsftpd/vsftpd.conflocal_enable=YESwrite_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YES自动备份思路前面讲过备份方式为双重备份,整个备份过程全由计算机自动处理完成,无须人为干预,大大提高效率。每周五对数据进行备份,思维图如下:思维图:192.168.30.129(网站服务器) 192.168.30.128 本地备份服务器通过 shell 脚本自动打包压缩并备份通过本机 shell 脚本执行 sftp 下载说明:通过两个 shell 脚本执行自动化管理,一个在 30.12
3、9 上执行对备份的数据进行打包并压缩,并在本地进行数据存放。另一个在 30.128 上执行,通过 sftp 功能对30.129 上打包的数据进行下载。操作过程(1)在 30.129 上我们需要备份 30.129 上文件目录/var/lib/mysql/ganqi_cms/以及/var/www/collect两个目录文件,其中 collect 目录中 cache、images 以及 Images 三个目录不需要备份。另外,ganqi_cms 目录文件不但要备份至 30.128 上,而且还要在本机 30.129 上另存一份。编写 shell 脚本命名为:Auto_backup.sh#!/bin/s
4、hMYDATE=date +%F#将日期赋予变量 MYDATEtar -zcvf /root/mysql_bak/ganqi_cms_$MYDATE.tar.gz /var/lib/mysql/ganqi_cms/#将 ganqi_cms 打包压缩存入/root/mysql_bak/做本地备份tar -zcvf /tmp/ganqi_cms_$MYDATE.tar.gz /var/lib/mysql/ganqi_cms/#将 ganqi_cms 放入/tmp 目录下做远程下载备份tar -zcvf /tmp/collect_$MYDATE.tar.gz -exclude=/var/www/co
5、llect/cache -exclude=/var/www/collect/images -exclude=/var/www/collect/Images /var/www/collect#将 collect 文件打包压缩并放入/tmp 目录下做远程下载备份对 Auto_backup.sh 进行权限设置,使其具有执行权限chmod 755 /usr/local/sh/Auto_backup.sh ,运行 Auto_backup.sh 在/tmp 下将获得以时间结尾的打包压缩文件 collect 和 ganqi_cms 文件,并且 30.129 上对 ganqi_cms 也进行了存放(2)在 3
6、0.128 上30.129 上工作已经完成,现在需要通过 sftp 对其进行下载。1.生成密钥对,使 shell 脚本运行后能自动登入 sftp 而无须输入密码,操作如下:在 30.128 上进行如下 操作rootCentOS1 .ssh# ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): #我用空格Enter passphrase (empty for no passphrase): #我用空格Enter same p
7、assphrase again: #我用空格Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:76:00:40:20:72:8a:da:45:5f:1b:57:ce:d9:40:b4:35 rootCentOS1The keys randomart image is:+- RSA 2048-+|o oo+. o .+= E |o+ . . o + o * . |o . . o
8、= . |. . . |. . S . | . . | | | |+-+You have new mail in /var/spool/mail/rootrootCentOS1 .ssh# lsid_rsa id_rsa.pub生成公钥 id_rsa.pub 和私钥 id_rsa,将公钥 id_rsa.pub 复制到 30.129 目录/.ssh 下(如果没有.ssh 就创建一个目录),并改名为 authorized_keys ,OK,在 30.128 上登入sftp 即可无须输入密码。无密码登入 sftp 设置好后便可创建 sftp 自动下载脚本 Auto_sftp.sh,创建准备要存放下载
9、的目录 collect_bak 和 mysql_bak 如下:#!/bin/shMYDATE=date +%Fsftp 192.168.30.129 EOM get /tmp/collect_$MYDATE.tar.gz /home/collect_bakget /tmp/ganqi_cms_$MYDATE.tar.gz /home/mysql_bakbye EOM ok,完成定时任务这是最后一步,设置定时任务 crontab e在 30.129 上设定时: 0 5 * * 5 /usr/local/sh/Auto_backup.sh 每周五 5 点进行打包在 30.128 上设定时: 0 7 * * 5 /usr/local/sh/Auto_sftp.sh 每周五 7 点进行下载全部任务已经完成,可以放心的去睡觉了。在定时上 30.129 的时间设置要早于30.128 哦!补充:我们使用的 ssh 都是默认的端口 22,如果修改过端口需在 Auto_sftp.sh 脚本的sftp 登入中加 oPort=端口 sftp oPort=22004 root192.168.30.1292015/12/18