`

sftp自动备份文件

 
阅读更多

1.sudo apt-get install openssh-server

2.groupadd -g 502 sftp

3.useradd -g sftp -d /home/hs -m -u 502 hs

usermod -s /usr/lib/sftp-server hs#为安全起见,该用户不能使用shell只能使用sftp命令

4.在客户端生成密钥。

ssh-keygen -t [rsa|dsa]

文件生成在/home/monica/.ssh中。

后缀为.pub需发送到服务器,并执行命令#cat id_dsa.pub >> /home/hs/.ssh/authorized_keys

5.编写脚本

此脚本将备份/home/monica/test中的attachments report_attachments中的文件,备份文件分别在/backup/attachments和/backup/report_attachments中,以.tgz文件格式保存。删除7天前的备份文件,并至少保留2个备份。tgz文件将传送到/home/hs/backupfile中。

#!/bin/bash
#tar -zvxf *.tgz

#日志路径
LogFile="/backup/backup.log"
SourceDir="/home/monica/test/"
BakDir=/backup
RetainDay=7
RetainPiece=2
#ProjectLst=/backup/project.lst
PROJECTLIST="attachments report_attachments"
DATE=`date +"%Y%m%d%H"`
echo "">>$LogFile
echo "backup start at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile
echo "--------------------------------------------------" >>$LogFile
#cd $BakDir
#PROJECTLIST=`cat $ProjectLst`

for Project in $PROJECTLIST
do
        [ ! -d $BakDir/$Project ] && mkdir -p $BakDir/$Project
        cd $BakDir/$Project
        ProjectData=$SourceDir/$Project
        DestDir=$BakDir/$Project/$Project$DATE
        PackFile=$DATE.$Project.tgz

       if [ -f $BakDir/$Project/$PackFile ]
       then
              echo "backup file $BakDir/$Project/$PackFile has existed !" >>$LogFile
       else
              cp -RHpf $ProjectData $DestDir >/dev/null
              tar -zcvf $PackFile $Project$DATE >/dev/null
              echo "backup $Project done into $PackFile" >>$LogFile
              rm -rf $Project$DATE
sftp -i /home/monica/.ssh/id_rsa -oPort=24 backupuser@192.168.0.1 <<END_SFTP
cd backupfile
put $PackFile
exit
END_SFTP
                echo "Packfile $PackFile has been transferred.">>$LogFile
       fi

        BakFileCount=`ls -l *.tgz|wc -l`
        WillDeleteFileCount=`find $BakDir/$Project/*.tgz -type f -mtime +$RetainDay|wc -l`
        if [ ${RetainPiece} -lt ${BakFileCount} ] && [ ${WillDeleteFileCount} -lt ${BakFileCount} ]
        then
                echo "Files below will be deleted.">>$LogFile
                find $BakDir/$Project/*.tgz -type f -mtime +$RetainDay >>$LogFile
                find $BakDir/$Project/*.tgz -type f -mtime +$RetainDay -exec rm {} \; >/dev/null
                echo "Files backed up $RetainDay days agon have been deleted.">>$LogFile
        else
                echo "Only "$RetainPiece" Pieces of backup file.">>$LogFile
        fi

done

echo "--------------------------------------------------" >>$LogFile
echo "backup end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile
exit 0
分享到:
评论

相关推荐

    windows脚本SFTP上传文件至备份服务器方案

    - WinSCP的作用是通过公私钥验证的方式登录SFTP服务器,并上传压缩后的备份文件。 5. **设定定时任务**: - 控制面板 → 管理工具 → 计划任务 → 添加计划任务 → 设置每日运行脚本备份文件 → 确保即使在未登录...

    系统工具-文件下载-通过SFTP服务器备份文件(Simple Safe Storage) 1.7.zip

    在标题"系统工具-文件下载-通过SFTP服务器备份文件(Simple Safe Storage) 1.7.zip"中,我们关注的焦点是利用SFTP(Secure File Transfer Protocol)服务器进行文件备份的过程。SFTP是一种安全的网络协议,用于在...

    windows下通过ssh自动备份的脚本

    本文将详细介绍如何利用SSH在Windows环境下创建一个自动备份脚本,以确保数据的安全与可恢复性。 首先,我们需要了解的关键点是`7za.exe`,这是一个轻量级的7-Zip压缩工具的命令行版本。7-Zip提供了高压缩率,支持...

    shell脚本基于sftp自动拉取远程备份文件,用于异地灾备

    脚本主要是通过sftp远程登录并拉取需要灾备的文件,配合Linux操作系统的定时任务即可实现自定义远程文件拉取功能。 脚本有个缺点是第一次执行脚本时,需手动输入一次服务器密码,仅输入一次即可,后续即可自动下载...

    windows系统日志自动备份脚本

    同时,为了确保数据的安全性,备份文件通常会被加密,并且在传输过程中使用安全协议,如SFTP或HTTPS。 车载GHOST重做草案.doc可能是与系统恢复相关的文档,GHOST是一种常见的硬盘克隆和恢复工具,与日志备份不同,...

    Cisco、华为、H3C交换机配置文件自动备份

    该脚本适用于Cisco、Huawei、H3C 网络设备使用 echo Cisco使用tftp方式将配置文件上传到服务器 echo Huawei、H3C使用窗口记录方式获取配置信息

    自动备份MSSQL数据库中所有的数据库

    在提供的文件列表中,“autobakup.exe”可能是实现自动备份的可执行程序,它读取“default.ini”配置文件,执行备份操作,复制备份文件,并根据设定删除旧备份。使用这样的工具可以简化数据库管理,但同时也需要了解...

    通用数据库及文件自动备份系统

    此外,系统还具备将备份文件传输到远程计算机的功能,这可能是通过FTP、SFTP或SCP等协议实现的。这种远程备份策略是灾难恢复的重要组成部分,即使本地系统出现问题,也能从远程位置恢复数据。值得注意的是,第一版...

    sftp在cron中自动传递帐号和密码

    将SFTP与Cron结合使用可以实现自动化文件传输的需求,这对于定期备份、同步数据等应用场景非常有用。本文将详细介绍如何使用expect脚本来实现这一目标。 #### 知识点四:Expect脚本详解 Expect是一种自动化交互式...

    SFTP上传下载 MFC VS2010

    用户可能需要设置各种参数,如服务器连接信息、文件路径、是否自动创建目录等。这些参数可以通过MFC对话框或配置文件进行设置。在实际使用时,根据需求调整这些参数是至关重要的。 4. **SFTP配置从数据库中下载**...

    sftp资料sftp资料

    2. `Linux下sftp自动上传文件 - xiang002的日志 LUPA开源社区.mht` - 这是一篇关于如何在Linux上配置SFTP实现文件自动上传的日志,可能涉及脚本编程和任务调度。 3. `how to setup sftp log - seven - 51CTO技术博客...

    Windows平台下自动备份文件到本地或者远端FTP服务器的解决方案.pdf

    Cobian Backup支持多种备份方式,包括但不限于完全备份、增量备份和差异备份,还支持压缩备份文件以及按计划任务自动执行备份。 3. FTP服务器:提到FileZilla FTP Server,这是一个流行的开源FTP服务器软件,允许...

    SFTP(SFTP)

    4. 自动化任务:通过脚本或工具定期执行SFTP操作,如备份、同步文件。 总的来说,SFTP是现代网络环境下保障文件安全传输的重要工具,其安全性和易用性使其在各种场景下都得到了广泛应用。通过理解SFTP的工作原理,...

    sql server自动备份与恢复系统(到FTP)源码

    SQL Server自动备份与恢复系统是数据库管理中至关重要的环节,特别是在大型企业或高并发应用环境中,数据的安全性和可恢复性是系统稳定运行的基础。本源码着重实现的就是这样一种功能,将SQL Server数据库的备份过程...

    python定期备份交换机配置文件二

    Python 定期备份交换机配置文件 Python script 介绍 在网络维护中,交换机配置文件的备份是非常重要的。为了避免配置文件的丢失,需要定期备份交换机配置文件。本文将介绍如何使用 Python Script 实现交换机配置...

    自动备份助手使用说明1

    《自动备份助手使用说明1》 自动备份助手是一款专为烽火通信科技股份有限公司数通产品线设计的集成测试软件,它旨在帮助用户自动化地备份网络设备配置,确保数据的安全性和完整性。该软件支持多种网络设备,如R800...

    多备份:一键自动备份你的WordPress博客

    通过多备份,用户可以设定自动备份,而无需在备份过程中进行任何干预。备份成功与否,用户都会通过邮件得到通知。 多备份为用户提供三种数据库备份方式。托管模式是最为简单的一种,用户只需要填写数据库账号信息...

    python 华为锐捷交换机备份.zip

    2. 配置文件命名:由于不同厂家的交换机备份文件名称可能不同,脚本中需要根据具体设备进行调整。例如,华为交换机的配置文件通常为"startup-config"或"running-config",而锐捷交换机的可能是"config.text"或其他...

Global site tag (gtag.js) - Google Analytics