这是我之前写的一个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"

unix服务器备份文件命令,linux/unix系统间文件备份脚本相关推荐

  1. Unit 2: Linux/Unix Acquisition 2.1 Linux/Unix Acquistion Memory Acquisition

    >> In 2008, the first open memory forensics workshop was organized to bring together digital i ...

  2. linux和unix区别_Unix vs Linux – Unix和Linux之间的区别

    linux和unix区别 Here you will learn about difference between unix and linux i.e. unix vs linux. 在这里,您将了 ...

  3. 虚拟机服务器关机命令,linux虚拟机怎么关机命令

    linux虚拟机怎么关机命令 内容精选 换一换 可以在虚拟机操作系统中执行sudo poweroff进行关机.如果无效则在virt-manager中关闭虚拟机,单击"Virtual Mach ...

  4. oracle修改时间命令,linux 修改系统时间 oracle查询当前时间命令

    1.Linux 操作系统 下查看和修改系统时间 [root@as4forora ~]# date -s 07/01/2008 二 7月 1 00:00:00 CST 2008 [root@as4for ...

  5. linux启停was命令,linux下的启停脚本

    linux下的根据项目名称,进行进程的启停脚本 #!/bin/bash JAVA=/usr/bin/java APP_HOME=/opt/program/qa/wechat APP_NAME=prog ...

  6. 释放linux缓存文件命令,Linux定时释放缓存Shell脚本实现自动化运维 | kTWO-个人博客...

    使用Linux服务器的用户应该都知道,Linux在使用的时候,可用内存会随着时间慢慢的变小,最终可能到80%-90%,这个时候就需要我们去人工干预,来进行魂村的释放. 本文将使用Linux的Cron定 ...

  7. linux启动sh文件命令,Linux下如何写 .sh 脚本启动 项目

    Linux下如何写 .sh 脚本启动 项目 创建文件   mealcoupon.sh 内容如下: #!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=xhqy_ ...

  8. linux执行使分区生效的命令,Linux/Unix命令:partprobe 系统不重启而使新的磁盘分区生效...

    学习了一个新的命令:partprobe,英语字面意思是分区探测,这个命令可以使操作系统不需要重启而使新的磁盘分区生效. 默认位置/sbin/partprobe.相关命令:parted. 实际使用过程中 ...

  9. linux服务器跟踪命令,Linux下使用strace命令来跟踪.htaccess的使用

    一般情况下,不应该使用.htaccess文件,除非你对Linux主服务器配置文件没有存取权限. 实际情况下,很多时候我们在不知情的条件下开启了.htaccess文件的支持,降低了apache的性能,下 ...

最新文章

  1. 导师讨厌什么样的学生 ?
  2. python 调用event handler_python-如何获取调用事件的窗口小部件的ID(...
  3. 动态规划训练13 [Catch That Cow poj3278]
  4. 用java二分法计算a的n次幂_用二分法计算a的n次幂算法分析
  5. Wordpress 数据库查询错误 Call to a member function get_results() on null
  6. webworker应用场景_初始WebWorker
  7. 用R和BioConductor进行基因芯片数据分析(四):芯片内归一化
  8. 彩虹查课插件 使用说明 网课查询插件 极速版
  9. Epub360、iH5、Mugeda,三款专业级H5设计工具详评
  10. 基于深度学习的短时交通流预测与优化
  11. .deb文件如何安装,Ubuntu下deb安装方法图文详解
  12. Keep不甘做“工具人”
  13. 【生信】全基因组关联分析(GWAS)原理
  14. 在Java中构建响应式微服务系统——第三章 构建响应式微服务
  15. ASP.NET中使用uedit遇到的坑们
  16. 要想成为一个开发组长,我个人认为要注意一下几点
  17. JDK11安装后无jre解决方法
  18. 基本电子元器件识别法
  19. Elecard StreamEye Tools
  20. 数据分析如何辅助决策【通俗版】

热门文章

  1. 小学莲山课件网 计算机教案,大班毕业主题教案:我上小学了
  2. 【190222】VC++ YY辅助工具-YY语音抢麦程序源码源代码
  3. IB卡配置可以ping通的子网交换器
  4. Qt扫盲-QDebug理论总结
  5. 安装skimage报错解决方案
  6. DVD-光盘刻录(笔记本、台式机)
  7. 用什么软件可以检测苹果耳机芯片_创新发布Sound Blaster X3外置声卡:支持新一代Super XFi耳机音效...
  8. x265-1.8版本-encoder/frameencoder.h注释
  9. 软考高级信息系统项目管理师系列之五:项目立项管理
  10. 大规模数据分析统一引擎Spark入门实战