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

网友投稿 610 2022-09-21

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

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

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

脚本的主要功能有:

用于不同服务器间当天的文件的同步或拷贝;需要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"

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:房本小程序开发「租房小程序开发」
下一篇:房产小程序开发「房产小程序开发怎么样」
相关文章

 发表评论

暂时没有评论,来抢沙发吧~