Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本

摘要:
/bin/shBK_ DR=/home/osyunweibak#备份文件存储路径DB_DR=/home/oxyunwei#要备份的文件目录DAYS=7#DAYS=7表示删除了7天前的备份,也就是说,只保留了最近7天的备份LINUX _ USER=root#系统用户名date=`date+%Y%m%d`#获取当前时间tarzcvf$BK_ DR/osyunwei$date.tar。gz$DB_DR#Backup chown-R$LINUX_USER:$LINUX_USER$BK_DR#更改备份数据库文件的所有者find$BK_DR name“osunwei*”-typef mtime+$DAYS execrm{};#删除7天前的备份文件deldate=`date-d-7day+%Y%m%d`#删除备份ftp-n˂˂!

 

 

 

说明: 

1、备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是指备份执行时当天的日期),最后只保留最近7天的备份

2、上传/home/osyunweibak里面的备份文件到远程FTP服务器上,并且只保留最近7天的备份。

3、FTP服务器:192.168.21.139 端口:21 账号:osyunwei 密码:123456 osyunweibak为备份文件存放目录(此目录需要预先在FTP服务器创建好)

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接

实现步骤:

1、安装ftp命令

apt-get install ftp   #安装ftp

2、创建保存备份文件的目录:/home/osyunweibak

cd /home  #进入目录

mkdir osyunweibak  #创建目录

3、创建备份脚本文件:/home/osyunweibak/osyunweibak.sh

cd /home/osyunweibak

touch osyunweibak.sh  #创建文件

nano osyunweibak.sh  #编辑文件,添加以下内容

#!/bin/sh

BK_DR=/home/osyunweibak    #备份文件存放路径

DB_DR=/home/osyunwei   #要备份的文件目录

DAYS=7                    #DAYS=7代表删除7天前的备份,即只保留最近7天的备份

LINUX_USER=root           #系统用户名

date=` date +%Y%m%d `  #获取当前时间

tar  zcvf  $BK_DR/osyunwei$date.tar.gz  $DB_DR   #备份

chown -R $LINUX_USER:$LINUX_USER $BK_DR  #更改备份数据库文件的所有者

find $BK_DR -name "osyunwei*" -type f -mtime +$DAYS -exec rm {} ;  #删除7天前的备份文件(注意:{} ;中间有空格)

deldate=` date -d -7day +%Y%m%d `   #删除ftp服务器空间7天前的备份

ftp -n<<!

open 192.168.1.1  21 #打开ftp服务器,21为ftp端口

user osyunwei 123456  #用户名、密码

binary  #设置二进制传输

cd osyunweibak  #进入ftp目录

lcd /home/osyunweibak  #列出本地目录

prompt

mput osyunwei$date.tar.gz   osyunwei$date.tar.gz   #上传目录中的文件

mdelete osyunwei$deldate.tar.gz  osyunwei$deldate.tar.gz  #删除ftp空间7天前的备份

close

bye !

ctrl+o   #保存配置

ctrl+x   #退出

4、修改文件属性,使其可执行

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接

chmod +x /home/osyunweibak/osyunweibak.sh  #添加文件执行权限

5、修改/etc/crontab

nano /etc/crontab   #编辑文件,在下面添加以下内容

5 2 * * * root /home/osyunweibak/osyunweibak.sh  #表示每天凌晨2点5分执行备份

6、重新启动crond使设置生效

service cron stop  #停止

service cron start #启动

/etc/init.d/cron restart #重启

chkconfig cron on #设为开机启动  先要安装chkconfig(apt-get install chkconfig)

在/home/osyunweibak目录下面可以看到类似osyunwei20120701.tar.gz这样的压缩文件

如果需要恢复文件的时候,只需要把这个文件解压即可

解压缩命令tar -zxvf  osyunwei20120701.tar.gz

至此,Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本完成。

免责声明:文章转载自《Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇常用的富文本框插件FreeTextBox、CuteEditor、CKEditor、FCKEditor、TinyMCE、KindEditor ;和CKEditor实例eslint在webstorm的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何使用Linux套接字?

      我们知道许多应用程序,例如E-mail、Web和即时通信都依靠网络才能实现。这些应用程序中的每一个都依赖一种特定的网络协议,但每个协议都使用相同的常规网络传输方法。许多人都没有意识到网络协议本身存在漏洞。本文将会学习如何使用套接字使应用程序访问网络以及如何处理常见的网络漏洞。 图1  OSI模型 1.套接字 套接字是通过操作系统(O...

Centos-对比文件差异-diff

diff   比较文件差异 相关选项   -c      显示全部内容,并标记不同之处   -b      忽略行尾空格,并认为字符串中一个或多个空格视为相同   -r       当比较双方都是目录时,会比较子目录中的文件   -s      当两个文件相同时,会显示文件的相同信息 相关信息    a    追加   d     删除   c     修...

利用S3fs在Amazon EC2 Linux实例上挂载S3存储桶

一、准备!!! 1、使用拥有足够权限的IAM账号登录AWS控制台 2、创建S3存储桶,给存储桶命名如“my-bucket”(如果使用已有存储桶,本步骤可略过) 3、有该S3存储桶访问权限的 IAM 用户,并为该IAM用户创建访问密钥 关于如何创建IAM用户,请参见:http://docs.aws.amazon.com/zh_cn/IAM/latest/U...

Linux C++ 开发常用工具,常用指令工作手册

http://blog.csdn.net/doc_sgl/article/details/47205779 配置强烈推荐使用vim常用::set nu显示行数 :set mouse=a 鼠标滑动屏幕,:set ic :set noic 忽略不忽略大小写 /word_to_searchc c表示忽略大小写 c小写忽略,C大写不忽略比较两个文件不同:vim...

Linux CentOS7 VMware find命令、文件名后缀

一、find命令 Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。在这篇文章中,我们将学习如何使用 find 命令以及它所提供的选项来查找文件。 列出当前目录和子目录下的所有文件 [root@davery ~]# find../.bash_logout./.ba...

Linux文件系统应用---系统数据备份和迁移(用户角度)

1前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的 “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得到完满解决。 之前的文章对Linux的文件系统有过粗略的介绍,但是了解文件系统结构后,有什么用途呢?在本章节将围绕"基于用户角度的Linux下的数据备份和迁移"的场景,对Linux文件系统相关知识进行实地...