はじめに
みなさま、curlコマンドは活用されていますでしょうか。
コマンドで対象WebサイトのHTTP応答を簡易的に確認することができるのでとても重宝します。
そんなcurlコマンドは、HTTP以外のプロトコルにも対応していますので、
紹介させてもらいます。
環境
OS : AlmaLinux 8
curlバージョン : 7.61.1
使い方
まずは、基本となるHTTPの応答確認から、
$ curl http://192.168.100.100
top page
$
index.htmlに「top page」とだけ記述しているので、こんな表示内容になってます。
では、httpsでアクセスしてみます。
$ curl https://192.168.100.100
curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
$
SSL証明書が自己証明書なので、エラーになってしまいます。こんなときは、オプション:-k をつけることで、SSL証明書の検証をスキップすることができます。
$ curl -k https://192.168.100.100
top page
$
今回は正常に表示されましたね。
次によく使うオプションとして、-I があります。オプション:-I をつけることでヘッダーのみを表示させることができます。
$ curl -k -I https://192.168.100.100
HTTP/2 200
date: Mon, 27 Jan 2025 10:22:20 GMT
server: Apache
last-modified: Sun, 26 Jan 2025 08:59:11 GMT
accept-ranges: bytes
content-length: 9
content-type: text/html
$
HTTPステータスコードが200で応答していることが確認できますね。
いかがでしたか? つぎは、FTPの接続です。
アップロード用のファイル:test.txtを作成しておきます。中身はこんな感じです。
$ cat test.txt
test ftp
$
FTPサーバー:192.168.100.100 に対して、FTPユーザー:tfptest で接続し、test.txt をアップロードしてみます。
$ curl -s -k -u ftptest -T ./test.txt ftps://192.168.100.100
Enter host password for user 'ftptest':
$
パスワードを求められるので入力すると、正常にファイルがアップロードされます。
アップロードされたか確認してみます。
$ curl -k -u ftptest ftps://192.168.100.100
Enter host password for user 'ftptest':
-rw-r--r-- 1 1008 1008 9 Jan 27 19:22 test.txt
$
されてますね。下記コマンドで、ファイルの内容も確認することができます。
$ curl -k -u ftptest ftps://192.168.100.100/test.txt
Enter host password for user 'ftptest':
test ftp
$
最後は、SMTPの接続です。メールを送信することもできます。
あらかじめmail.txtを以下の内容で作成しておきます。
$ cat mail.txt
From: hogehoge@example.com
To: fugafuga@example.com
Subject: testmail
test mail.
$
下記のコマンドを実行することで、メールを送信することができます。
$ curl -Ss --mail-from hogehoge@example.com --mail-rcpt fugafuga@example.com --upload-file mail.txt smtp://127.0.0.1:25
mail.txtの中身は空でも送信自体はできますが、各種ヘッダーの指定がないとメールソフトで受信した際、該当項目が空になってしまいますのでご注意ください。
まとめ
いかがでしたか?
今回紹介したFTP、SMTP以外にも多くのプロトコルに対応しています。
興味のある方は、いろいろ試してみるのも良いのではないでしょうか。
ぜひ、curlコマンドを活用してみてください。