No.400
レゲエのフェスは天候にも恵まれ平穏無事に終わりました。
本番10時間の2デイスでしたが、交代しながらの本番対応だったので長い休憩がありました。
クラシックバレエやオペラの現場が控えているのでその準備を進めたかったのですが、超爆音のレゲエを聞きながらクラシック系のことを考えるなんて無理ムリ。
なので、久しぶりにサーバーのガチメンテをしてました。SSHやVPNで遠隔操作が出来るので場所を選ばず操作出来ます。
本当に久しぶりのガチメンテでしたが、いろんな問題が出てくる出てくる。
一番の問題はVPNを介した遠隔ファイルバックアップが止まっていたこと。サーバー間をVPNで繋いでいたのですが、バックアップ側のTLS(認証の暗号化処理)が古くてVPNが接続していなかったのです。つまり、本体のOSをバージョンアップしてから数か月間バックアップが機能していなかったというオチ・・・。バックアップですから本体が堅調なら問題ないのですがコレはよくない。
ところが、調べてみたらTLSを新しくするにはOSそのものをバージョンアップしないといけないとのこと。遠隔でやるのは怖いけど、主システムとは無関係なサポートサーバーなので落ちてもいいから作業を進める。幸い素直にバージョンアップが済んでVPNも復活しました。debianを使っていますが、バージョンアップはコマンドを3つ走らせるだけなので簡単。ただし、時間がかかるのに途中で質問に答えねばならんので付きっ切りになるのは頂けませんが・・・。
こんなことがあると欲しくなるのがエラーを知らせてくれる何か。今回の場合は「バックアップに問題あるかもよ!」というシンプルなお知らせ。実行結果を診断して自動的に送信されるメールってことになるでしょうか。
Linuxは凄いと思ったのがこういった処理。bashと呼ばれるコマンドラインにはメール送信機能が普通にあります。単なるコマンドラインですから、cronで直接実行も可能ですし、cronから呼び出されるスクリプトファイル(古い言い方ですとバッチファイル)に仕込んでおいてもいい。私ごときがやりたいと思うことの大半はbashで出来ちゃうLinux。難しいのは数多ある機能を知ることと使いこなすことでしょうか。
ちなみにシンプルなテキストメールを送るだけならこんな感じ
$ /bin/echo -e "メッセージ本文" | /usr/bin/mail -s "メールのタイトル" root
rootってのは固定されたシステム管理者のアカウント名。この場合は宛先になりますが、これだけでは誰にも転送されません。メールデーモンにroot宛のメールを転送する設定をしなければなりませんが、転送すればスマホでも何でも受信出来ます。
コマンドの間にある"|"はパイプと呼ばれる機能です。上記ではechoで出力された文字列をmailに本文として引き渡すという意味になりますが、シンプルながら応用の幅が無限大なこんな機能を考えた人は天才。
さらにです、バッククウォート(日本語キーボードならシフトキーを押しながら[@]キーで出るチョン)で囲めばコマンドの返り値をメール本文にも出来るそうな。
$ /bin/echo -e `/bin/date` | /usr/bin/mail -s "日時" root
これはdateという現在日時を表示するコマンドの結果をメールするだけですが、固定されたテキストもコマンドを実行した結果も区別無く扱えるということです。
bashでのテキストの扱いには正規表現に代表される難解さがありますが、パイプと合わせてこの辺りを覚えたら驚くほど色んなことが出来ます。
[コマンドを実行] → [その結果を判別] → [管理者へメッセージを送信]
こんなことが特別なアプリを使うことなくコマンドラインの組み合わせで出来てしまうのです。シンプルなモノをシンプルな方法で組み合わせて無限の可能性を産むと言ったら言い過ぎでしょうか。
コンピュータを扱うことにかけては神レベルの天才達が作ったとはいえ、LinuxというかUNIXは本当にスゲー。
#サーバー
本番10時間の2デイスでしたが、交代しながらの本番対応だったので長い休憩がありました。
クラシックバレエやオペラの現場が控えているのでその準備を進めたかったのですが、超爆音のレゲエを聞きながらクラシック系のことを考えるなんて無理ムリ。
なので、久しぶりにサーバーのガチメンテをしてました。SSHやVPNで遠隔操作が出来るので場所を選ばず操作出来ます。
本当に久しぶりのガチメンテでしたが、いろんな問題が出てくる出てくる。
一番の問題はVPNを介した遠隔ファイルバックアップが止まっていたこと。サーバー間をVPNで繋いでいたのですが、バックアップ側のTLS(認証の暗号化処理)が古くてVPNが接続していなかったのです。つまり、本体のOSをバージョンアップしてから数か月間バックアップが機能していなかったというオチ・・・。バックアップですから本体が堅調なら問題ないのですがコレはよくない。
ところが、調べてみたらTLSを新しくするにはOSそのものをバージョンアップしないといけないとのこと。遠隔でやるのは怖いけど、主システムとは無関係なサポートサーバーなので落ちてもいいから作業を進める。幸い素直にバージョンアップが済んでVPNも復活しました。debianを使っていますが、バージョンアップはコマンドを3つ走らせるだけなので簡単。ただし、時間がかかるのに途中で質問に答えねばならんので付きっ切りになるのは頂けませんが・・・。
こんなことがあると欲しくなるのがエラーを知らせてくれる何か。今回の場合は「バックアップに問題あるかもよ!」というシンプルなお知らせ。実行結果を診断して自動的に送信されるメールってことになるでしょうか。
Linuxは凄いと思ったのがこういった処理。bashと呼ばれるコマンドラインにはメール送信機能が普通にあります。単なるコマンドラインですから、cronで直接実行も可能ですし、cronから呼び出されるスクリプトファイル(古い言い方ですとバッチファイル)に仕込んでおいてもいい。私ごときがやりたいと思うことの大半はbashで出来ちゃうLinux。難しいのは数多ある機能を知ることと使いこなすことでしょうか。
ちなみにシンプルなテキストメールを送るだけならこんな感じ
$ /bin/echo -e "メッセージ本文" | /usr/bin/mail -s "メールのタイトル" root
rootってのは固定されたシステム管理者のアカウント名。この場合は宛先になりますが、これだけでは誰にも転送されません。メールデーモンにroot宛のメールを転送する設定をしなければなりませんが、転送すればスマホでも何でも受信出来ます。
コマンドの間にある"|"はパイプと呼ばれる機能です。上記ではechoで出力された文字列をmailに本文として引き渡すという意味になりますが、シンプルながら応用の幅が無限大なこんな機能を考えた人は天才。
さらにです、バッククウォート(日本語キーボードならシフトキーを押しながら[@]キーで出るチョン)で囲めばコマンドの返り値をメール本文にも出来るそうな。
$ /bin/echo -e `/bin/date` | /usr/bin/mail -s "日時" root
これはdateという現在日時を表示するコマンドの結果をメールするだけですが、固定されたテキストもコマンドを実行した結果も区別無く扱えるということです。
bashでのテキストの扱いには正規表現に代表される難解さがありますが、パイプと合わせてこの辺りを覚えたら驚くほど色んなことが出来ます。
[コマンドを実行] → [その結果を判別] → [管理者へメッセージを送信]
こんなことが特別なアプリを使うことなくコマンドラインの組み合わせで出来てしまうのです。シンプルなモノをシンプルな方法で組み合わせて無限の可能性を産むと言ったら言い過ぎでしょうか。
コンピュータを扱うことにかけては神レベルの天才達が作ったとはいえ、LinuxというかUNIXは本当にスゲー。
#サーバー