scpとは
リモートのPCにファイルをアップロードしたり、ダウンロードできるコマンド 基本的にはcpと同じ体系になってると思う。 で、最初のsは多分sshのs
問題点
sshの問題点でも有るんだけど、scpのコマンドの問題でも合って、 多段sshをしている時って、ファイルをアップロードしたりダウンロードしたりって結構面倒。 ただでさえコマンドが長くなりがちなのに、「踏み台を一度経由してー」とかやってると日が暮れる。
解決の仕組み
webのリンクを踏むとファイルをダウンロードさせる仕組みを使うとリモートからローカルの転送はかなり楽になる。 この方法を応用すると、同じネットワーク内にいる際にこの方法でファイル共有が出来るのかな。
必要なもの
- PHP5.4以上
PHP5.4以上にはビルトインサーバーが組み込まれているのでこれを使いたい
参考
方法
上記のリンクのファイルを作成し、以下のコマンドで起動する
1 2 |
|
こうすることで、webサーバーがsample.phpを動かすので気軽にファイルをダウンロードは出来るようになる。
(当然リモート側はアクセスできるようにiptables等の設定が必要です)
本当は取り組みたかったこと
1
|
|
で任意のファイルをダウンロードさせるスクリプトを作りたかった。
が、コマンドライン引数を受け付けてくれなくて断念した。
コマンドライン引数とかを指定してもipとポート番号と以外無駄。
他の事例として
最近python製のマイクロフレームワークのflaskを取り組んでいまして、そっちでも似たようなことをやっていた。
1
|
|
って感じでやるといい感じにwebアプリケーションだけどコマンドライン引数を受け取ってくれてた。
これができちゃうのにはスクリプトからwebサーバーを動かす仕組みになっているからですが。 (つまり、本日、本当にやりたかったことはflaskとpythonがあればできるので、それは後日書きます。)
結論として
phpの場合はサーバーの上にスクリプトが存在してて、URLから別ファイルを参照することも(ファイルが存在すると)可能。
python(flask)の場合はスクリプトからwebサーバーを動いているので、そのスクリプト上にルーティングが存在しないとだめ。
両者ともにwebサーバーの機能を実現しているが、仕組みが結構異なるということだと思われる。 この話を突き詰めていくと結構ちゃんとした話になると思うが、何を突っついたらいいのか分からないのが本音。
話がずれたけど以上。