ディレクトリ/ home/testのコンテンツ全体をFTPサーバーの特定のフォルダーにアップロードする必要があります。次に、cronを介してスクリプトを1時間ごとにスケジュールします。例はありますか?
NB。私がNetgear ReadyNAS Duo(debianボックス)を使用していて、lftpまたは同様のものをインストールできないことを考慮してください。標準のコマンドのみです:)
品質のドキュメントがあるこのbashスクリプトをオンラインで見つけました:
#!/bin/bash
Host=ftp.server.com #This is the FTP servers Host or IP address.
USER=ftpuser #This is the FTP user that has access to the server.
PASS=password #This is the password for the FTP user.
# Call 1. Uses the ftp command with the -inv switches.
#-i turns off interactive prompting.
#-n Restrains FTP from attempting the auto-login feature.
#-v enables verbose and progress.
ftp -inv $Host << EOF
# Call 2. Here the login credentials are supplied by calling the variables.
user $USER $PASS
# Call 3. Here you will change to the directory where you want to put or get
cd /path/to/file
# Call4. Here you will tell FTP to put or get the file.
put test.txt
# End FTP Connection
bye
EOF
.shスクリプトを構成して保存したら、実行可能にします。
chmod + x ftpscript.sh
最後に、cronジョブを設定します
1行でコマンド:
ftp -in -u ftp://username:password@servername/path/to/ localfile
curl
は、FTPサーバーにファイルをアップロードできます。
curl -T "$FILE(s)" -u $USERNAME:$PASSWORD $SERVER/$DIR/
$FILE
のグロブパターンを使用することもできます。
かなり標準的な 'curl'がある場合、無人FTPアップロードを実行できます(-Tオプションについては、manページを参照してください)。
Sshがインストールされ、ファイル転送を許可するように構成されている場合は、scp
を使用できます。
そうでない場合、netcat
またはrsync
がオプションになることがあります。
Bashスクリプトでは、次のようなことができるはずです。
#!/bin/bash
echo "
verbose
open 1.2.3.4
USER ftpuser ftppasswd
put /path/to/stuff.tar.gz
bye
" > ftp -n > ftp_$$.log
最初にディレクトリをタール化することをお勧めし、それをはるかに簡単にします。また、ディレクトリのサイズとネットワークの速度に応じて、差分tarの実行を検討することもできます。
プログラムをインストールまたはビルドできる場合、 ftpsync と呼ばれるユーティリティが探しているものである可能性があります。 [私は一度も試したことがないが、それと呼ばれる、または非常によく似たユーティリティがいくつかあるようだ。]