特に大量にやらなくてはいけない作業というものがなかったのでApacheとかPostfixとかをプログラムで制御するということはあまりしてきませんでしたが、やってみると結構便利です。cronを使ってもできますが、何かのきっかけでスクリプトを実行した際には何事もまとめて片付けてしまいたいということで、サーバーの制御にいろいろと使う方法です。
こういったサーバーの制御には基本的にはその実行ユーザー(apacheとかpostfixとか)を使用するかrootで行う必要があります。通常のログインユーザーみたいなもの(Ubutuの場合だと自分が現在使用しているユーザー)からは実行できないのでご注意。また、Root権限で実行してしまうスクリプトなので、使い方に注意してください。実行してしまったら一気に実行されてしまいます。
まずは、#!/bin/bashというように正しいパスを書きます。環境によって違うと思うのでご注意。次にApacheの再起動のコマンドをそのまま書きます。で、終わったらexitです。かなり簡単です。実際に実行する際には、端末から操作します。例えばこのファルをapache_restart.shとして保存した場合には、
こういうのたくさん作っておくと結構便利です。
こういったサーバーの制御には基本的にはその実行ユーザー(apacheとかpostfixとか)を使用するかrootで行う必要があります。通常のログインユーザーみたいなもの(Ubutuの場合だと自分が現在使用しているユーザー)からは実行できないのでご注意。また、Root権限で実行してしまうスクリプトなので、使い方に注意してください。実行してしまったら一気に実行されてしまいます。
Shellスクリプトを使う
例えばApacheの再起動にshell scriptを使用する場合は、以下のように書きます。#!/bin/bashとても簡単です。
# Apache2 Restart
/etc/init.d/apache2 restart
exit
まずは、#!/bin/bashというように正しいパスを書きます。環境によって違うと思うのでご注意。次にApacheの再起動のコマンドをそのまま書きます。で、終わったらexitです。かなり簡単です。実際に実行する際には、端末から操作します。例えばこのファルをapache_restart.shとして保存した場合には、
# bash apache_restart.sh [Enter]で実行します。通常のコマンド(# /etc/init.d/apache2 restart [Enter])を実行するのと全く同じようになります。このファイルをcronなどで実行させると、一定時刻に自動的に再起動を行ってくれます。
* Restarting web server apache2
... waiting
Perlを使う
上記と殆ど違いがないわけですが、時としてperlの中に組み込みたい場合はそのままperlで書く方がやりやすいです。しかしPerlのコマンドにはApacheの再起動はないので、Shellのコマンドとして呼び出して使うことになります。ここでは、標準出力に実行結果を吐き出せるようにバッククォートを使用して実行します。#!/usr/bin/perlバッククォート内にコマンドには、Apache2の再起動コマンドをそのまま入れてあげます。後は、変数で実行結果を得てから標準出力に出してあげるだけです。かなり簡単です。ファイル名を、apache_restart.plなどとして保存し、同様に端末から実行すると、
# Apache2 Restart
my $result = `/etc/init.d/apache2 restart`;
print "$result\n";
exit;
# perl apache_restart.plというようにちょっと違う出力がなされますが、実行結果は同じになります。
* Restarting web server apache2
... waiting ...done.
こういうのたくさん作っておくと結構便利です。



