linux/unix 시스템 간 파일 백업 스 크 립 트

이것 은 제 가 이전에 쓴 셸 스 크 립 트 입 니 다. linux/유 닉 스 시스템 간 의 파일 자동 백업 에 사용 합 니 다.
스 크 립 트 의 주요 기능 은:
  • 서로 다른 서버 간 당일 파일 의 동기 화 또는 복사 에 사용 합 니 다.expect 명령 지원 이 필요 합 니 다. RHEL 과 AIX 테스트 가 정상 이 고 expect 명령 지원 이 필요 합 니 다. (유 닉 스 시스템 은 스 크 립 트 첫 줄 의\#!/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"

    좋은 웹페이지 즐겨찾기