centos定时备份数据到远程FTP文件
例1,定时备份到远程ftp
先说问题.公司现在有2台服务器,都是centos系统,一台本地(局域网),一台则在电信机房.因为工作需要,每天备份机房上的数据到本地,以前一直是FTP登录,然后下载到本地机器.现在则希望,利用本地的centos机器,自动备份到本地.
解决方法如下:
1.下载远程电信机房中机器上已打包好的数据.这个不难,一条语句搞定.
代码如下 | |
wget ftp://user_name:password@ip_address:port/dir/file_name2. |
定时任务,需要写个脚本,并加入定时任务中.
a.脚本.假设你计划将远程的文件备份到/var/www/html/back目录下,到这个目录下,新建文件,内容如下
代码如下 | |
!#/bin/sh |
b.加入定时任务.直接vi /etc/crontab 在最后一行加入如下语句
代码如下 | |
30 18 * * * root /var/www/html/back/bak.sh |
(脚本保存的位置)这样每天下午6:30本地的centos机器自动会将远程FTP的文件备份到/var/www/html/back中了.
PS:文中涉及的技术详细情,限于各种因素不细说.大家搜索下就可以了,欢迎给我留言,Q me.
例2,自动备份文件到远程FTP服务器并删除指定日期前的备份
说明:
我这里要把/home/wwwroot目录下面的所有文件备份到/home/wwwrootbak里面,并且保存为wwwroot20111103.tar.gz的压缩文件(20111103是指备份执行时当天的日期),然后只保留最近7天的备份,再把备份文件通过ftp服务器上传到指定空间,只保留最近7天的数据。
1、创建保存备份文件的目录:/home/wwwrootbak
代码如下 | |
cd /home mkdir wwwrootbak |
2、创建备份脚本文件:/home/wwwrootbak/wwwrootbak.sh
代码如下 | |
cd /home cd wwwrootbak touch wwwrootbak.sh vim wwwrootbak.sh |
输入以下内容:
代码如下 | |
#!/bin/sh |
3、修改文件属性,使其可执行
代码如下 | |
chmod +x /home/wwwrootbak/wwwrootbak.sh |
4、修改/etc/crontab
代码如下 | |
vi /etc/crontab |
在下面添加
代码如下 | |
5 2 * * * root /home/wwwrootbak/wwwrootbak.sh |
表示每天凌晨2点5分执行备份
5、重新启动crond使设置生效
代码如下 | |
/etc/rc.d/init.d/crond restart #yum install -y vixie-cron安装计划任务,某些系统上可能没有预装 chkconfig crond on #设为开机启动 service crond start #启动 |
每天你在/home/wwwrootbak目录下面可以看到类似wwwroot20111103.tar.gz这样的压缩文件
如果需要恢复文件的时候,只需要把这个文件解压即可
解压缩:tar -zxvf wwwroot20111103.tar.gz