服务器到服务器文件传输端口?

时间:2017-12-03 09:21:54

标签: linux bash ftp backup

我使用bash脚本(https://github.com/johnnywoof/FTP-Bash-Backup)将我的Debian www目录备份到ftp服务器。一切顺利,但转移阻止防火墙。该脚本每次都使用单独的端口,因此我无法通过防火墙取消阻止。有没有办法指定端口

Bash脚本

# FTP server settings
USERNAME=""
PASSWORD=""
SERVER=""
PORT=21

BACKUPDIR="/"

ndays=7

LOCAL_DIRECTORY="/home"

TEMP_BACKUP_STORE="/tmp"

ENCRYPT_BACKUP=false

AES_PASSWORD_FILE=""

timestamp=$(date --iso)

backup_remote_file_name="$timestamp.tar.gz"
backup_file="$TEMP_BACKUP_STORE/$backup_remote_file_name"

MM=`date --date="$ndays days ago" +%b`
DD=`date --date="$ndays days ago" +%d`

echo "Removing files older than $MM $DD"

listing=`ftp -i -n $SERVER $PORT <<EOMYF
user $USERNAME $PASSWORD
binary
cd $BACKUPDIR
ls
quit
EOMYF`

lista=( $listing )

for ((FNO=0; FNO<${#lista[@]}; FNO+=9));do
    # month (element 5), day (element 6) and filename (element 8)
    #echo Date ${lista[`expr $FNO+5`]} ${lista[`expr $FNO+6`]}          File: ${lista[`expr $FNO+8`]}

    if [ ${lista[`expr $FNO+5`]}=$MM ];
    then
        if [[ ${lista[`expr $FNO+6`]} -lt $DD ]];
        then
            echo "Removing ${lista[`expr $FNO+8`]}"
            ftp -i -n $SERVER $PORT <<EOMYF2
            user $USERNAME $PASSWORD
            binary
            cd $BACKUPDIR
            delete ${lista[`expr $FNO+8`]}
            quit
            EOMYF2
        fi
    fi
done

echo "Creating backup..."

tar -czf $backup_file $LOCAL_DIRECTORY

if [ "$ENCRYPT_BACKUP" == "true" ]
then
    echo "Encrypting backup using OpenSSL..."
    output_encrypted_file="$backup_file.enc"
    openssl enc -aes-256-cbc -salt -in $backup_file -out $output_encrypted_file -pass file:$AES_PASSWORD_FILE
    rm $backup_file
    backup_file=$output_encrypted_file
fi

echo "Uploading backup $backup_file ..."

ftp -n -i $SERVER $PORT <<EOF
user $USERNAME $PASSWORD
cd $BACKUPDIR
put $backup_file $backup_remote_file_name
quit
EOF

echo "Deleting temporary files..."
rm $backup_file
echo "Backup complete." 

1 个答案:

答案 0 :(得分:2)

切换到被动模式:

passive命令后将user插入新行。

请参阅:Active FTP vs. Passive FTP, a Definitive Explanation