2017-01-04 1 views
0

Ich möchte einen Batch-Job automatisieren, die die folgenden:Überprüfen Sie, ob eine Datei im FTP existieren mit einem automatisierten Bash-Skript

  1. überprüfen, ob mein datei.txt in einem FTP-Server vorhanden ist, ich es umbenennen zu file.trt
  2. überprüfen, ob mein datei.txt und file.trt existieren, wenn so sende ich eine E-Mail
  3. ich ein anderes Skript
  4. am Ende laufen lösche ich file.trt

hier ist, was ich getan habe:

#!/bin/bash 
host='ftp.xxxx.com' 
USER='xxxx' 
PASSWD='xxxx' 

ftp -n -v $host << EOF 
ascii 
user $USER $PASSWD 
prompt 
mls /TEST/file.txt test.txt 
quit 
EOF 

if [[ $? -eq 0 ]] 
     then 
      echo "The File file.txt Exists"; 
     else 
      echo "The File file.txt dons not Exist"; 
fi 

Am verwirrt und weiß nicht, wie es zu tun, kann jemand bitte hilf mir?

+0

ich es dir mit PHP tun können, wenn Sie daran interessiert sind. Sie können PHP auch über die Befehlszeile ausführen. –

+0

nein danke :) Ich habe einen Weg gefunden und arbeite daran – BaFouad

Antwort

0

Ich tat dies und es funktioniert gut:

#!/bin/bash 
host='ftp.xxxx.com' 
USER='xxxx' 
PASSWD='xxxx' 

FTPFile1="/TEST/file.txt" 
FTPFile2="/TEST/file.trt" 


#search file.txt et file.trt on the ftp server 
ftp -n -v $host << EOT 
ascii 
user $USER $PASSWD 
prompt 
mls $FTPFile1 $FTPFile2 test.txt 
quit 
EOT 

# # ----------------------------------------------------------------------------------------------------------------------# 
# # test if file.txt et file.trt are present => send mail 
# # ----------------------------------------------------------------------------------------------------------------------# 

if grep -inr '/TEST/file.txt' test.txt && grep -inr '/TEST/file.trt' test.txt 
    then 
     echo "" | mail -s "aaaaa] Error, aaaaa." [email protected] -c [email protected] 

    elif grep -inr '/TEST/file.txt' test.txt 
     then 
     echo "The File file.trt does not Exist (no loading at the moment), rename file.txt to file.trt and start loading"; 

    # ----------------------------------------------------------------------------------------------------------------------#  
    # rename file.txt 
    # ----------------------------------------------------------------------------------------------------------------------# 

ftp -n -v $host<< EOT 
    user $USER $PASSWD 
    get $FTPFile1 file.txt 
    rename $FTPFile1 $FTPFile2 
    quit 
EOT 


    else 
     echo " file.txt (file not yet ready). No action to do."  
fi 

# ------------------------------------#  

    ftp -n -v $host << EOT 
    user $USER $PASSWD 
    get $FTPFile1 file.txt 
    quit 
EOT 

    TRT_DATE=`cat file.txt | grep -Po "[0-9]{8}"` 


     # run my_script.sh 
       ./my_script.sh -d $TRT_DATE 


#delete file.txt et test.txt 
rm -f file.txt test.txt 

# delete file.trt 
ftp -n -v $host << EOT 
    user $USER $PASSWD 
    delete $FTPFile2 
    quit 
EOT 

exit 0 
Verwandte Themen