はじめに
いろいろ方法はあるかと思いますが、今回は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
こんな感じですかね?