ラック
Home > ブログ > 記事 > 2014年11月 > ディレクトリ下の最新ファイルだけftp

ディレクトリ下の最新ファイルだけftp

カテゴリ: Linux

ローカルのあるディレクトリの下にバックアップファイルが蓄積しているような状態を考えます。

バックアップはこまめに行われますが、リモートのバックアップ先(外付けHDDとかNASとか)に送るファイルはそのうちの1つで良い(ディスク容量逼迫などの理由で、全部を転送するのはちょっと、みたいな場合)、なんてとき。

最新のバックアップファイルだけを定期的にftpで別のデバイスに転送したい、となりました。なお、Linux環境です。

そんなわけで、参考サイトの合わせ技。

#!/bin/sh
#
# LatestFile transport.
#

cd /hogeDirectory
LATEST_FILE="`ls -lt backup_* | head -n 1 | gawk '{print $9}'`"
/bin/ftp -n << END

open XXX.XXX.XXX.XXX
user username password
binary
cd /fugaDerectory
lcd /hogeDirectory
put $LATEST_FILE
y
bye
END

ヒアドキュメント内がftpコマンドですね。

Linux環境のローカルディレクトリ「/hogeDirectory」下にある「backup_<日付>.tar.gz」とかいうバックアップファイルのうち、タイムスタンプで最新のファイルの名前をLATEST_FILEという変数に保存。

あとはそれをftpコマンドの中に渡して実行する(リモートの「/fugaDirectory」下に転送)、と。

これをシェルスクリプトとして保存し、cronに登録すれば自動的にやってくれるはず。当然、スクリプトに実行権限を付与しておくこと(それを忘れて今週の処理が失敗した人)。

…と思ったらできてなかった。要調査。

P.S.

解決したので別エントリ立てました。

タグ: サーバ環境・構築, シェル, 手順

 



関連する記事一覧