運営者プロフィール

これは便利!Raspberrypi2にncftpを入れてフォルダ一括ダウンロード!+バックアップスクリプト付き

とあるサーバ上にあるディレクトリを一括でダウンロードしてバックアップしたいと思ったのですが、普通のftpコマンドだと出来なさそう。
(再帰的なスクリプトかけよ、って話なんですけどねw)
で、調べたところ「ncftp」を使ってディレクトリまる毎ダウンロード出来るらしい事が判明。
なので「nctftp」を使ってみようかなと。

セキュリティ的には「SCP使えよ」って感じなんですが、場合によっては使えない事もありますので。

ncftpインストール

raspberrypi2に「ncftp」をインストールします。

・インストール

# apt-get install ncftp

・確認

# ncftp --version
NcFTP 3.2.5 (Feb 02, 2011) by Mike Gleason (http://www.NcFTP.com/contact/).
ncftp> quit

インストール出来ました。

ncftpでFTP

FTP接続は以下のように行います。


# ncftp -u <ユーザ名> -p <パスワード> <リモートホスト名 or ip>

接続した後はFTPコマンドで色々と出来ます。

上記のようにインタラクティブに接続せず、コマンド一発で一括ダウンロードは以下のように行います。
シェルスクリプトに組み込むのは下記が良いかも。

・一括ダウンロード


# ncftpget -u <ユーザ名> -p <パスワード> -R ftp://<リモートホスト名 or ip>/<リモートディレクトリ>/

逆に一括アップロードもありますよ。

・一括アップロード


# ncftpput -R -u <ユーザ名> -p <パスワード> <リモートホスト名 or ip> /<リモートディレクトリ> /<ローカルディレクトリ>

FTPアップロードスクリプト

最後に作成したFTPアップロードスクリプトを参考に公開しておきます。
取り敢えず動きますが、適当なので信用しないでね(笑)
※201505/14 追記
【使い方】
下記のスクリプト + バックアップ対象ディレクトリを引数として3つ指定可能
実行例)
/script/ithinkit_ftp.sh <バックアップ1> <バックアップ2> <バックアップ3>


#!/bin/sh
# Local Backup Directory
WorkDir=/backup
BackupDir=${WorkDir}/$(date +%Y%m%d)
BackupDir1=${BackupDir}/$1
BackupDir2=${BackupDir}/$2
BackupDir3=${BackupDir}/$3

# BKDir Check
if [ ! -e ${BackupDir} ]; then
mkdir -p ${BackupDir}
fi

# ncftp CMD
Ncftp(){
ncftpget -R -u <FTPユーザ> -p <任意のパスワード> ftp://<リモートホスト>/<ディレクトリパス>/$1/
}

# Make Backup1 Directory
if [ ! -e ${BackupDir1} ]; then
mkdir ${BackupDir1}
fi

# Make Backup2 Directory
if [ ! -e ${BackupDir2} ]; then
mkdir ${BackupDir2}
fi

# Make Backup3 Directory
if [ ! -e ${BackupDir3} ]; then
mkdir ${BackupDir3}
fi

# FTP Download
cd ${BackupDir1} && Ncftp $1
cd ${BackupDir2} && Ncftp $2
cd ${BackupDir3} && Ncftp $3

# Old Backup Erace
find /backup/ -maxdepth 1 -mtime +7 | xargs rm -rf

ncftpを使うことによってFTPを使ったディレクトリ毎のバックアップが簡単に行える事が分かりました。
今はraspberrypi2上でバックアップスクリプトを実行していますが、容量が増えてくると考えないとな~。

それではまた!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)