2017-12-08 6 views
-2

私は、イントラネットにバックアップを保存するために、Linux上でFTPファイル転送を自動化しようとしています。私の主な問題は、SHHが私たちのsambaサーバーや他のものを壊すので、私はSCPを使うことができないということです。だから私たちはvsftpに固執しています。LinuxでFTPファイル転送を自動化するにはどうすればよいですか?

私がおそらくやることは、毎週Cronで実行するbashを作成することです。これは私がインターネットで見つけ例です。

#!/bin/bash 
HOST='your.ftp.site' 
USER='remoteusername' 
PASSWD='remotepasswd' 

ftp -n -v $HOST << EOT 

    ascii 
    user $USER $PASSWD 
    prompt 
    [COMMANDS GO HERE] 
    bye 
    EOT 

しかし、私は実際にコードが2台のコンピュータ間でファイルを転送するためにそれを超えて使用するものを見つけることができません。それはシンプルなCATだろうか?

ご協力いただきありがとうございます。

+1

「SHHが私たちのサンバサーバーと他のものを破壊する」 - それは非常に奇妙です。 – Quentin

+0

"しかし、私は2つのコンピュータ間でファイルを転送するために使用するコードを見つけることはできません。" - あなたの質問は、ftpユーティリティの使い方と同じくらいプログラミング上ではないようです。 [Google](https://www.google.co.uk/search?client=safari&rls=en&q=how+to+upload+file+with+command+line+ftp+client&ie=UTF-8&oe=UTF-8&gfe_rd= cr&dcr = 0&ei = 8a8qWoiSLqin8weHlK_oAg)は、[this](https://tecadmin.net/download-upload-files-using-ftp-command-line/)を検索します。 – Quentin

+0

本当にそうです。しかし、私の上司は明らかにすでにSHHをインストールしようとしていました。だから私はSHHに触れることができません。 – Anon

答えて

1

いくつかの可能性があります。 最初に:lftpを使用してください。もちろん、細かなマニュアルを読む必要がありますが、一例として:

echo "mirror --reverse --delete" | lftp -u $username,$password $mysite 

または使用が予想される:

spawn ftp mysite 
expect "Login:" 
send "username\r" 
expect "ssword:" 
send "S0m3ting\r" 
expect "ftp>" 
send "prompt\r" 
expect "ftp>" 
send "cd somewher\r" 
expect "ftp>" 
send "mget allfiles.*\r" 
expect "ftp>" 
send "mput loadsofotherfiles.*\r" 
expect "ftp>" 
send "bye\r" 

(注:これは最初のテストとして動作しますが、あなたは次のように実行すべきではありませんこれは生産中)

また、man ftp[COMMANDS(その)GO HERE]のリストを提供します。

サイドノート:sshとSAMBAは同じサーバーで正常に動作するはずです。そこに何が間違っているのか少し調べたいかもしれません。

関連する問題