- blogs:
- cles::blog
2015/02/27

CentOS 5 の curl で sftp を使う


sftp でファイル転送をする必要があったのですが、ごちゃごちゃスクリプトを書くのは面倒なので、curl に一撃でダウンロードやアップロードをする機能があったのを思い出して早速試してみたところ、curl: (1) Unsupported protocol: sftp というエラーが出てしまってしょんぼり。以下をみると分かるとおり、CentOS 5.x に搭載されている curl 7.15.5 は sftp が有効な状態でコンパイルされていませんでした。
# curl -V
curl 7.15.5 (i386-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
仕方がないので、curl の本家サイトからリンクされている http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/ で公開されている RHEL/CentOS 向けバイナリを利用することにしました。ライブラリの依存関係をかいけつしてやらないといけないので、インストールは以下のような感じになります。
rpm -Uvh http://mirror.city-fan.org/ftp/contrib/libraries/libssh2-1.4.3-16.0.cf.rhel5.x86_64.rpm http://mirror.city-fan.org/ftp/contrib/libraries/libssh2-devel-1.4.3-16.0.cf.rhel5.x86_64.rpm
rpm -Uvh http://mirror.city-fan.org/ftp/contrib/libraries/c-ares-1.10.0-4.0.cf.rhel5.x86_64.rpm http://mirror.city-fan.org/ftp/contrib/libraries/c-ares-devel-1.10.0-4.0.cf.rhel5.x86_64.rpm
rpm -Uvh http://mirror.city-fan.org/ftp/contrib/libraries/libidn-1.29-3.rhel5.x86_64.rpm http://mirror.city-fan.org/ftp/contrib/libraries/libidn-devel-1.29-3.rhel5.x86_64.rpm
rpm -Uvh http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/libcurl7155-7.15.5-17.cf.rhel5.x86_64.rpm http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/libcurl-7.41.0-1.0.cf.rhel5.x86_64.rpm http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/curl-7.41.0-1.0.cf.rhel5.x86_64.rpm
インストール後に curl の状態を調べてみると、ちゃんと sftp が有効になっていることが確認できます。
$ curl -V
curl 7.41.0 (x86_64-redhat-linux-gnu) libcurl/7.41.0 OpenSSL/0.9.8b zlib/1.2.3 c-ares/1.10.0 libidn/1.29 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets Metalink
ここまでくれば、以下のコマンドでファイルを簡単にサーバから出し入れできるようになります。
以下はパスワード認証を使っていますが、sftp は ssh の応用アプリなので公開鍵認証することもできます。
# ファイルの取得
curl -k -u username:password sftp://server.example.com/path/to/getfile.zip
# ファイルの送信
curl -k -T putfile.zip -u username:password sftp://server.example.com/path/to/dir
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7422
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . Thunderbird のメッセージをスレッド化しないようにする(7189)
2 . Word で数式がグレーアウトされていて挿入できないときは(6933)
3 . Windows 10 で勝手にログアウトされないようにする(5262)
4 . Firefox でパスワードが保存されるページとされないページの違い(3964)
5 . awk で指定した n カラム目以降を出力する(3555)
2 . Word で数式がグレーアウトされていて挿入できないときは(6933)
3 . Windows 10 で勝手にログアウトされないようにする(5262)
4 . Firefox でパスワードが保存されるページとされないページの違い(3964)
5 . awk で指定した n カラム目以降を出力する(3555)
cles::blogについて
Referrers