ftpコマンドでバッチ処理したいときってありますよね。
しょっちゅう同じディレクトリの中身を同じディレクトリに放り込むとか。
じゃ、シェルスクリプト書きましょうということで。
あ、例のごとくWindowsじゃなくてLinuxです
で、今回はFTPS(FTP over SSL)での記述なので、ftpじゃなくてlftp使います。
まあftpでも同じような感じだと思います。
#!/bin/sh if lftp <<_EOD set cmd:fail-exit yes open ftps://ftps.example.com user hoge hogehoge cd /remote lcd /local mirror -R quit _EOD then echo "upload succeeded.\n" else echo "upload failed.\n" fi
という感じのシェルスクリプトを今回書きました。
内容としては、lftpコマンドで<<_EODから_EODまでを実行させて、実行結果が正常なら成功したよ、失敗したら失敗したよ、と表示させています。
lftpでは
set cmd:fail-exit yes
とすることで、コマンドが失敗したら接続を切ってエラーを返すようにできます。
バッチ処理にはもってこいです。
そのあと、openで接続先をftpsで開いて、userで認証、cdでリモートのファイルを置きたいディレクトリに移動、lcdでローカルの置きたいファイルがあるディレクトリに移動、mirror -Rでローカルのファイルをリモートにミラーしてquitで終了としてます。
このあたりは人によってやりたいことが違うのでご自由にしましょう。
見ての通り認証のパスワードがめっちゃ記述されている(user hoge hogehogeのhogehogeがパスワード)ので、スクリプトのパーミッションには気をつけましょう。
if – then – else – fiの流れはlftpコマンドが成功したらthenで失敗したらelseってことでまあ詳しくはシェルスクリプトでぐぐってください。

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 