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

说明: 

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脚本完成。

时间: 2024-10-24 13:57:11

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

linux自动备份文件 并上传到远程服务器 脚本实现

(1)在服务器上创建备份目录,并赋予权限 mkdir -p /backup/bakdata  #新建数据备份目录(2)完成备份脚本操作新建脚本文件      vi bakdata.sh添加以下内容: #!/bin/sh     dateTime=`date +%Y_%m_%d`    #当前系统时间     days=7    #删除7天前的备份数据s     orowner=bakuser   # 备份到此用户下     bakdescdir=/DATA/bakmdata     #备份文件到

静态资源上传至远程ftp服务器,ftp工具类封装

工具类,是一个单独的工程项目 提取必要信息至ftp.properties配置文件中 ftp_host=192.168.110.128 ftp_port=21 ftp_username=ftpuser ftp_password=ftpuser ftp_dir=/home/ftpuser/jd ftp_url=http://www.images.com 封装FtpUtils工具类 public class FtpUtils { private static String ftp_host = nul

webapi批量上传照片到ftp服务器(base64)

一段demo.做的时候根据自己的需求改造下 public HttpResponseMessage AddVisitNew(HttpRequestMessage request, CustomerVisitAddNewModel model) { return CreateHttpPostResponse<long>(request, () => { var res = customerVisitInfoService.AddVisitNew(model, CurrentUserId);

Linux下自动备份Oracle数据库并删除指定天数前的备份

Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务器 mkdir -p /backup/oracledata #新建Oracle数据库备份目录 chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Or

Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

#!/bin/bash #设置Oracle数据库运行账号及oracle的系统环境变量 export ORACLE_BASE=/data/oracle export ORACLE_HOME=$ORACLE_BASE/product/10g export ORACLE_SID=test export PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/li

你知道哪些linux命令,能把文件上传到远程linux服务器

多数情况下 企业的服务基本都是部署在linux服务器 那对于测试同学,必须掌握基本的linux命令 至少要知道怎么部署整体环境 部署过程中,经常需要的操作,是向服务器上传部署包 你一般都是通过什么方式上传到服务器的? 方式很多中 如果你是securecrt工具,那就非常简单了 sz & rz 轻松搞定上传&下载 如果是纯命令操作呢? 如果你本机是mac,没有用到任何工具,仅仅只是用的终端 怎么样向服务器上传部署包? ----- 方式同样有很多种,今天分享ssh方式,很简单(一行命令搞定!)

Linux上F上传文件到FTP服务器

Linux上上传跟Windows上上传不一样,在Windows上测试没问题,但是放到Linux服务器上跑,上传的文件中文显示乱码.解决方案: FtpUtil.java红色标记处 package cn.zto.util; import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOExce

上传附件到ftp服务器

1 windows下搭建ftp服务器 https://blog.csdn.net/qq_34610293/article/details/79210539 搭建好之后浏览器输入 ftp://ip就可以看见弹出账号密码的输入框.(win10家庭版本是没有在计算机管理中显示用户组的,具体添加方法见:https://www.kafan.cn/edu/68801291.html) 2 原生上传下载的demo <dependency> <groupId>commons-net</gro

jdk1.7 上传文件至ftp服务器

private static boolean uploadFile( String url,// FTP服务器hostname int port,// FTP服务器端口 String username, // FTP登录账号 String password, // FTP登录密码 String path, // FTP服务器保存目录 String filename, // 上传到FTP服务器上的文件名 InputStream input // 输入流 ){ boolean success = f