linux/unix系统间文件备份脚本

这是我之前写的一个shell脚本,用于linux/unix系统间的文件自动备份。

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比贵溪网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式贵溪网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖贵溪地区。费用合理售后完善,10年实体公司更值得信赖。

脚本的主要功能有:

  1. 用于不同服务器间当天的文件的同步或拷贝;需要expect命令支持,RHEL和AIX测试正常,需要expect命令支持(unix系统需要修改脚本第一行的#!/bin/bash为系统SHELL);

使用要求:

        系统expect命令可用;目标(远程)设备文件夹存在且可有相应权限。
适用情况(以下场景测试正常):
        一台设备同一文件夹向一台或多台远程设备相同或不同文件夹拷贝文件
        一台设备不同文件夹向一台或多台远程设备相同或不同文件夹拷贝文件
        AIX系统间文件非实时同步
        AIX和RHEL系统间文件非实时同步
        RHEL系统间文件非实时同步

使用前请先进行测试。

aix_trans.sh脚本代码如下:

#!/bin/bash
#Author:ZJ
#QQ:1037509307
#DateTime: 2016-07-09 01:41:14
#Description:
#用于不同服务器间当天的文件的同步或拷贝;需要expect命令支持,RHEL和AIX测试正常,需要expect命令支持。
#aix系统需要修改头文件;
#使用要求:系统expect命令可用;目标(远程)设备文件夹存在且可访问。
#适用情况:
#一台设备同一文件夹向一台或多台远程设备相同或不同文件夹拷贝文件
#一台设备不同文件夹向一台或多台远程设备相同或不同文件夹拷贝文件
#Version: v1.3
########################################源设备信息##########################################
#源设备文件路径1 (路径最后不要加斜线/)
Source_Path_1=/usr/appsoft/EasyCfg/system_check/warnlog
#源设备文件压缩包名称1
File_Name_1=file1.zip

#若需要同步该设备的其他文件夹,请按照上述格式继续添加变量即可,示例
#源设备文件路径2
#Source_Path_2=xxxx
#源设备文件压缩包名称2
#File_Name_2=file2.zip

###################################第一台目标设备信息#######################################
#目标设备IP地址
Target_IP_A=192.168.101.206
#目标设备密码
Target_Passwd_A=iES@1234
#目标设备文件存放路径(请确保该文件夹存在且可被访问)
Target_Path_A1=/usr/appsoft/jieya

#若需要将文件同步到该设备的不同文件夹下,请继续添加文件存放路径即可变量即可,示例
#Target_Path_A2=/usr/appsoft/jieya1
#Target_Path_A3=/usr/appsoft/jieya2

#若需要添加其他目标设备,请按照“第一台目标设备信息”进行添加,示例:
###################################第二台目标设备信息#######################################
#目标设备IP地址
#Target_IP_B=192.168.101.206
#目标设备密码
#Target_Passwd_B=iES@1234
#目标设备文件存放路径(请确保该文件夹存在且可被访问)
#Target_Path_B1=/usr/appsoft/jieya
############################################################################################

Get_Syslog(){
LANG=EN
Month=`date +%b`
Day=`date +%e`
Ip=$1
PASSWD=$2
Source_Path=$3
Target_Path=$4
File_Name=$5
cd "${Source_Path}"
ls -l | egrep "${Month}[[:space:]]+${Day}" | awk '{print $9}' | xargs zip -r ${File_Name}
expect -c "
set timeout -1
spawn scp -r -p ${Source_Path}/${File_Name} root@${Ip}:${Target_Path}
expect {
\"*yes/no)?\" {send \"yes\r\";exp_continue}
\"*password:\" {send \"${PASSWD}\r\";exp_continue}
\"*unreachable\" {exit 1}
\"*Permission denied*\" {exit 2}
\"*No route to host*\" {exit 3}
\"*failure*\" {exit 4}
\"*No such file or directory*\" {exit 5}
\"*No match*\" {exit 6}
\"*failed*\" {exit 7}
expect eof
}

spawn ssh root@${Ip} cd $Target_Path && unzip -o $File_Name -d $Target_Path && rm -rf $Target_Path/$File_Name
expect {
\"*yes/no)?\" {send \"yes\r\";exp_continue}
\"*password:\" {send \"${PASSWD}\r\";exp_continue}
\"*unreachable\" {exit 1}
\"*Permission denied*\" {exit 2}
\"*No route to host*\" {exit 3}
\"*failure*\" {exit 4}
\"*No such file or directory*\" {exit 5}
\"*No match*\" {exit 6}
\"*failed*\" {exit 7}
expect eof
}"

} #Get_Syslog右括号

#Tips:
#Get_Syslog "目标主机IP" "目标主机密码" "源主机文件路径" "目标主机文件路径" "压缩包名称"
#如果需要传送多个文件夹的文件,按照下面的命令格式依次添加即可
Get_Syslog "${Target_IP_A}" "${Target_Passwd_A}" "${Source_Path_1}" "${Target_Path_A1}" "${File_Name_1}"
#示例
#Get_Syslog "$Target_IP_A" "$Target_Passwd_A" "$WEB_Path_From_2" "$Target_Path_A1" "$File_Name_2"

网站标题:linux/unix系统间文件备份脚本
标题网址:/article22/jpohjc.html

成都网站建设公司_创新互联,为您提供星空体育app最新版本(2024已更新)App开发手机网站建设静态网站网站设计公司移动网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设