はじめに
いろいろ方法はあるかと思いますが、今回はCurlコマンドを使用してみたいと思います。
MacにはCurlは標準装備されているので特にインストールなどは不要です。
さっそくアップロードしてみましょう。コマンドは下記のようになります。
curl -T (ファイル名) -u (ユーザー名):(パスワード) ftp://(ホスト名)/(パス)
たとえば下記のような場合
1. ファイル名 sample.txt
2. ユーザー名 hoge
3. パスワード hogehoge
4. ホスト ftp://test.net
5. パス site/root/test
下記のように記載します。
curl -T sample.txt -u hoge:hogehoge ftp://test.net/site/root/test/
一つ、注意点ですが、パスの最後に「/(スラッシュ)」を忘れないようにしてください。
忘れるとエラーが出てしまいます。
次に、カレントディレクトリにあるファイルをすべてFTPサーバーにアップロードする方法について考えてみたいと思います。
一つ一つファイルをアップロードするのにコマンドを打つのは現実的ではないので
シェルスクリプトを書いてみたいと思います。
カレントディレクトリのファイルをすべて送信するなら下記のような感じになります。
#!/bin/bash
MY_DIRNAME=$(dirname $0)
cd $MY_DIRNAME
files=(`ls -1`)
for file in ${files[@]}
do
curl -T sample.txt -u hoge:hogehoge ftp://test.net/site/root/test/
done
if [ $? = 0 ]; then
echo "終了"
else
echo "エラー発生"
fi
exit 0
次はカレントディレクトリの中でPDFファイルのみをアップロードする方法について考えてみます。
シェルスクリプトについては下記のようになります。
#!/bin/bash
MY_DIRNAME=$(dirname $0)
cd $MY_DIRNAME
files=(`ls -1`)
for file in ${files[@]}
do
case $file in
*.pdf)
curl -T sample.txt -u hoge:hogehoge ftp://test.net/site/root/test/
;;
*)
:
esac
done
if [ $? = 0 ]; then
echo "終了"
else
echo "エラー発生"
fi
exit 0
こんな感じですかね?