[ PC系セットアップ覚書 Top]

PC系セットアップ覚書

2011年まで「俺的な非 UN*X 環境をめざして」という題でしたが、 「UNIX系」と「非UNIX系」の区別がだんだん難しくなってきましたので、 あれこれ区別しないことにしました(^_^;


[前] 動画からAnimated GIFに 2018/01a

curlでFTPS 2017/11a

[Table of Contents]

FireFTPが使えない‥

[Table of Contents]

Firefox57 の衝撃

これまで私がメインで使ってきたブラウザの話から始めます。こんな感じ:

NCSA Mosaic (Xmosaic)Netscape NavigaterMozilla Firefox (現在に至る)
基本的にずっーと Mosaic/Mozilla 系で、じつに忠実なユーザだなあ、と 我ながら感心してしまうんですが、それはさておき。

 Firefox がいつもどおり勝手にバージョンアップした‥のはいいんですけど。 すると何と! それまで使えていたアドオンが軒並み使用不可になってるではありませんか! うそ?! (@_@;

 調べてみると、今回のバージョン: Firefox 57 からアドオンに関する仕様が ガラリと変更になり、これまで使えていたアドオンのかなりのものが「レガシー」として 切り離されてしまったみたいです。いろいろ見てみると、なんか2年くらい前から その筋のほうではそういう話はすでに出ていたみたいで、知らなかった自分が 情弱すぎという話なのかなー。

[Table of Contents]

FireFTP on Waterfox

 んで、これまで使っていたアドオンで使えなくなったものがいくつかあるんですけど。 いちばん困ったのが FireFTP というアドオン。 このページもそうなんですけど、私のサイトは今でもなお WWW初期の人たちと同じ方法、 つまり「FTPソフトを使って、手元にあるHTMLページ群をWWWサーバに転送する」という方法で ページ更新をしてます。ので、同じブラウザを使って「WWWサイトの更新」と、 「更新したページの見栄えの確認」が同じソフトでできるのは楽で良かったんですけど。 それができなくなっちゃったんですよね。

 困ったなあ‥。FireFTP でいつ頃に新Firefox対応してくれるかな? ‥とか思って FireFTP のサイト見てみると、こんな感じのことが書いてあります:

I've ended support / development of the addons. I recommend switching to Waterfox to continue using the addons. [ FireFTP - The Free FTP Client for Waterfox ]
[大雑把訳] これらアドオンのサポート・開発はもう終わり。今後も使い続けたいなら Waterfox に 鞍替えがオススメ。

 「もう終わり」‥がーん。ここで紹介されてるのが Waterfox というブラウザ で、 Firefox をベースにした派生ブラウザみたいです。インストールしてみたところ、たしかに Waterfox 上で FireFTP が使えました! ‥けどなー。 Waterfox 自身は Firefox の「古い」アドオンに今後も対応していくと言ってはいる みたいですけど、どうなのかなー。正直いって半年後一年後がちょっと不安です。

 そこで。FireFTP に替わる FTP アップロードについて、ちょっと調べてみました。 その際のメモです。(Macintosh)

[Table of Contents]

Mac用のFTPクライアント

Mac用のフリー(?)のFTPクライアントで調べるとすぐ出てくるのが FileZillaとか Cyberduck (非フリー)

 じつは FileZilla は FireFTP を使う前に使ってたんですよね。不満がある訳では なかったんですけど、ちょっと自分の用途では大げさかなー、と。Windows用の FFFTP のような シンプルなやつが良いんですけど、そういうのが見当たらないんですよね‥。 (その FFFTP すら、いよいよ開発終了の噂が‥ [ 開発終了→オープンソース化で生き長らえたFTPソフト「FFFTP」、今度こそ終了か? ] )

 ということで。自分で自分のファイル送信用スクリプトを自作することにしました(^_^) 使用する FTP クライアントとしては、Macintosh で標準装備されている(はずの) /usr/bin/ftp か /usr/bin/curl か‥と迷いましたが、とりあえず SSL 転送機能つきの curl を使うことにします。

[Table of Contents]

curl でファイル転送

[Table of Contents]

ファイル送信の基本

いろいろ調べたところ、ローカルにある a.jpg をサーバ、たとえば今このページがある ayiva.sakura.ne.jp に送るときには「ターミナル」などからこんな感じの コマンドを指定してやると良いみたいです:

curl --user USER:PASS -T a.jpg ftp://ayiva.sakura.ne.jp/www/
こうすると FTP で ftp://ayiva.sakura.ne.jp/www/a.jpg (これは https://ayiva.sakura.ne.jp/a.jpg として参照可能) に ファイルを送ることができるようです(USER:PASS は適切なものを指定してね)。

 送付先をちょっと変えて ftp://ayiva.sakura.ne.jp/www/a/a.jpg に 送りたい時は以下:

curl --user USER:PASS -T a.jpg ftp://ayiva.sakura.ne.jp/www/a/
こんな感じみたいです。ここでの注意点としては、サーバ側に www/a/ という ディレクトリがないと 転送エラーになるみたいで、そのときは以下のようにして前もって www/a/ という ディレクトリを作成する必要があります。
curl --user USER:PASS ftp://ayiva.sakura.ne.jp/www/a/ --ftp-create-dirs
そしてその後、ファイル転送を行うわけです。

[Table of Contents]

複数のファイルを一気に送る

転送するファイルの指定は -T もしくは --upload-file オプションを使いますが、このオプションを複数並べても、最初に指定した ものしか有効になりません。じゃあ、どうやって複数のファイルを送るのか? という 話になると、こんな方法が有効みたいです。

 たとえば a.jpg, b.jpg, c.jpg の3つのファイルを送りたいときはこんな感じ:

curl --user USER:PASS -T "{a,b,c}.jpg" ftp://ayiva.sakura.ne.jp/www/
こんな感じで行けるはずです。もっと単純な書き方:
curl --user USER:PASS -T "{a.jpg,b.jpg,c.jpg}" ftp://ayiva.sakura.ne.jp/www/
これでもOKです。スクリプトなどでコマンド文字列を自動生成するときは こっちの方が ラクですよね。

 ただ、こんな感じで冗長なファイル名の並べ方をした場合。 コマンド行が長くなりすぎて大丈夫? という不安も出てくるかもしれません。 そういう時、UN*X 系システムではコマンド一行の最大長を getconf コマンドで 調べると良さげです。手元の Macintosh の場合、

getconf ARG_MAX
これを実行した結果 262144 という結果が表示されましたので、 半角英数 26万文字程度までなら大丈夫ということがわかります。‥実質、 Macintosh の場合、コマンド行の長さは心配する必要は無さげです。

 余談。じゃあ Windows の cmd.exe のコマンドラインの長さの限界はどのへんか? という話なんですけど。Win2000 と WinXP は 2047文字。Vista以降(すくなくとも Win10 まで)は 8192 文字まで、という感じみたいです [参考]。 26万字も使える Macintosh/unix よりも短いなあ‥と思ってしまいますけど、 でも 2000 文字もあれば 実用上ほぼ困ることなさそうですよね。ちなみに MS-DOS とか Windows95 などの command.com は127文字(設定を工夫すれば 250文字)までだったみたい [参考]ですから、 Microsoftも地味なところを機能強化してますね。

[Table of Contents]

パスワードを別ファイルに

curl 起動のたびコマンド行にパスワードを入力するのは面倒ですよね。 そこでユーザ名・パスワード情報を別ファイルに記述しておきます。 このとき使えるのが昔なつかしい ${HOME}/.netrc という名前のファイルです。中身を

machine ayiva.sakura.ne.jp
login UNAME
password PASSWORD
こんな感じで書いて(マシン名とか UNAME とか PASSWORD は別途、正しいものを 書いてね)、可能なら自分以外はアクセスできないようにして(といっても 個人使用のMacではほとんど無意味ですけど、気休め程度のために‥)、 それでこんな感じ:
curl -n -T "{a,b,c}.jpg" ftp://ayiva.sakura.ne.jp/www/
これで .netrc に書かれたデータを使って、コマンドラインにユーザ名と パスワードを書かずともアクセスできるようになったと思います。

 さらに。決まった名前の ${HOME}/.netrc に大事な情報を書くのは 不用心すぎないか? というのが気になった場合、.netrc 以外のファイル名を 使うこともできます。たとえば /tmp/secret/my-pass という名前に ユーザ名・パスワードを書いた場合は以下:

curl --netrc-file /tmp/secret/my-pass -T "{a,b,c}.jpg" ftp://ayiva.sakura.ne.jp/www/
[Table of Contents]

SSLでデータを送る

FTPS、つまり SSL を使った通信をしたいときはこんな感じ:

curl --ssl -n -T "{a,b,c}.jpg" ftp://ayiva.sakura.ne.jp/www/
これでうまくいくはず。-v オプション付きで実行すると以下:
> AUTH SSL
< 234 AUTH SSL successful
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate: *.sakura.ne.jp
* Server certificate: GlobalSign Domain Validation CA - SHA256 - G2
* Server certificate: GlobalSign Root CA
こんな感じのメッセージがアクセス開始のところで出てますので、きっとうまく 行ってますよね???

 ここで使っている --sslオプションについて。 --ftp-sslという名前も使えるみたいですが、そのうち --ftp-sslの名前は使用不能にするからな! という感じみたいです。

 ちなみに、ユーザ名とパスワードのとこだけ暗号化できてればいいや、という場合:

curl --ftp-ssl-control -n -T "{a,b,c}.jpg" ftp://ayiva.sakura.ne.jp/www/
こんな感じで行けてるはずです。

‥んで、こんな感じの文字列を自動生成し、さらに実行してしまうスクリプトを 自作したところ、とりあえず FireFTP の個人的な代替になりそうだなー、と。 そんな感じであります。

[Table of Contents]

[ふろく] 忍者ホームページのFTPS

忍者ホームページも FTPS 対応してるはずなので同様に行けるはず! と思って、ちょっと 試してみました。

 SSL ナシの単なる FTP 通信ならOKなんですけど。  --ssl オプションをつけて実行してみると、なんかエラーが出て 接続できません。何故? ‥それは忍者ホームページの「ヘルプ」を見るとわかります:

今回利用しているSSL証明書は、弊社が独自に発行している証明書となります。
そのため、発行機関の証明がついていないために「無効」または「偽装」と判断されてしまう事もございますが、対策の一環である「暗号化」は適切に行われておりますので、ご安心ください。 [ 接続の際にSSL証明書が無効である(または偽装である)という警告画面が出ます。 ]
いわゆる「オレオレ証明書」というやつですね。たしかに、ちゃんとした証明書があれば 「サーバの身元がそれなりにハッキリしてる」ので最良なんですけど。 「信用できるアクセス先かどうかは不明だけど、とりあえずユーザ名とパスワードさえ 暗号通信できてればOK」というのであれば、まあ、オレオレ証明書でも構わないというのは 確かですからね。

 そんなときは -k--insecure オプションを付けて 実行すればいい、らしいです。

[Table of Contents]

[追記] Win10 で標準装備されてる!!

(2022.7 追記)

気付くのが遅くなってしまいましたけど、2020年頃のアップデートから Win10 で curl.exe が標準装備されるようになってたみたいですね。すげえ! (C:\Windows\System32\curl.exe)

Mac 等でもかなり以前から curl は標準装備されていますから、 FTP コマンドはもう完全に終了ですかね。 「そんなん、まだ使ってるの?!」という感じですけど、オプションなどの 指定の仕方が違うので とくにスクリプトから呼び出して 使っている FTP から curl への変更はちょっと面倒といえば面倒なんですよね‥



[次] Webcam で定点観測的な? 2017/03b