Linux下自动备份文件到远程FTP服务器并删除指定日

系统教程导读

收集整理了【Linux下自动备份文件到远程FTP服务器并删除指定日】操作系统教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2672字,纯文字阅读大概需要4分钟

系统教程内容图文

【 这里要把/backup/oracledata目录下面的所有文件备份到/backup/oracledatabak里面,并且保存为TianShan20140409.tar.gz的压缩文件(20140409是指备份执行时当天的日期),然后只保留最近7天的备份,再把备份文件通过ftp服务器上传到指定空间/oraclebackup下,只保留最近7天的数据。
场景说明
操作系统:Centos
FTP: 192.168.148.121 用户:dell 密码:123
解决方案:利用Linux crontab-自动化的任务 实现自动备份
实现步骤
1、创建保存备份文件的目录
[root@localhost ts]# mkdir -p /backup/oracledatabak
2、创建备份脚本文件 tianshanftp.sh    vim /backup/oracledatabak/tianshanftp.sh ;输入以下内容
(详细的代码解释)   #!/bin
FTP_IP=192.168.148.121      #ftp地址
FTP_USER=dell           #ftp用户名
FTP_PASS=123           #ftp密码
FTP_backup=/oraclebackup         #ftp上存放备份文件的目录,需要先在FTP上面建好
BK_DR=/backup/oracledatabak    #备份文件存放路径
DB_DR=/backup/oracledata  #已经存在文件
DAYS=7                    #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
LINUX_USER=root           #系统用户名
date=` date +%Y%m%d `
tar zcvf $BK_DR/TianShan$date.tar.gz $DB_DR
chown -R $LINUX_USER:$LINUX_USER $BK_DR  #更改备份数据库文件的所有者
find $BK_DR -name “TianShan*” -type f -mtime +$DAYS -exec rm {} ;  #删除7天前的备份文件(注意:{} ;中间有空格)
deldate=` date -d -7day +%Y%m%d `   #删除ftp服务器空间7天前的备份
ftp -i -v -n $FTP_IP 《 END #打开ftp服务器。21为ftp端口   《END 和最后的 END:术语叫:当前文档here documents. here document 就是一段特殊目的的代码块
【#它使用I/O重定向的形式来将一个命令序列传递到一个交互程序或者命令中,比如ftp、cat,或者ex文本编辑器。   本句可以理解从《END开始以非对话模式的ftp连接,直到输入END为止的所有命令。   当然END这个名字是可以随便取的,不一定必须是END,可以取其它的名字。   】
user $FTP_USER $FTP_PASS   #用户名、密码
binary         #设置二进制传输
cd $FTP_backup  #进入ftp目录
lcd $BK_DR  #列出本地目录
mput TianShan$date.tar.gz TianShan$date.tar.gz    #上传目录中的文件
mdelete TianShan$deldate.tar.gz TianShan$deldate.tar.gz  #删除ftp空间7天前的备份
bye
END
如果手动执行 sh没有问题的话,而放到crontab 执行报错话,请把上面的注释删掉,在执行试试。可以直接用下面【】里面的代码即可。
【【   #!/bin
FTP_IP=192.168.148.121
FTP_USER=dell
FTP_PASS=123
FTP_backup=/oraclebackup
BK_DR=/backup/oracledatabak
DB_DR=/backup/oracledata
DAYS=7
LINUX_USER=root
date=` date +%Y%m%d `
tar zcvf $BK_DR/TianShan$date.tar.gz $DB_DR
chown -R $LINUX_USER:$LINUX_USER $BK_DR
find $BK_DR -name “TianShan*” -type f -mtime +$DAYS -exec rm {} ;
deldate=` date -d -7day +%Y%m%d `

ftp -i  -v -n $FTP_IP 《 END
user $FTP_USER $FTP_PASS
binary
cd $FTP_backup
lcd $BK_DR
mput TianShan$date.tar.gz
mdelete TianShan$deldate.tar.gz
bye
END  】】
3、修改文件属性,使其可执行
chmod +x /backup/oracledatabak/tianshanftp.sh
4、修改/etc/crontab   vi /etc/crontab     在下面添加
5 2 * * * root /backup/oracledatabak/tianshanftp.sh   》 /backup/oracledatabak/mylog.log 2>&1  #表示每天凌晨2点5分执行备份,并保持对应日志
5、重新启动crond使设置生效
service crond restart #启动
每天你在/backup/oracledatabak目录下面可以看到类似TianShan20140409.tar.gz这样的压缩文件,同时在FTP服务器下的 oraclebackup目录下也有一个TianShan20140409.tar.gz这样的压缩文件,
如果需要恢复文件的时候,只需要把这个文件解压即可】
【 解压缩:tar -zxvf TianShan20140409.tar.gz?
 

  以上就是给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击官网吧。 
 
本文来自http://www.win7cn.com/如需转载请注明!推荐:win7纯净版】

系统教程总结

以上是为您收集整理的【Linux下自动备份文件到远程FTP服务器并删除指定日】操作系统教程的全部内容,希望文章能够帮你了解操作系统教程Linux下自动备份文件到远程FTP服务器并删除指定日
如果觉得操作系统教程内容还不错,欢迎将网站推荐给好友。

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Linux下自动备份文件到远程FTP服务器并删除指定日