サーバーの管理をする上でシェルスクリプトの知識は必要です。 自動で何かを処理したい場合にシェルスクリプトを作成し、cronで時間指定して実行させる等便利な機能です。

 

1.先ずはバックアップをとるためのスクリプトファイルを作成します。

# vi /root/シェルスクリプト名

#!/bin/sh  ←決まり文句
PATH=/bin:/usr/bin:/sbin:/usr/sbin  ←決まり文句、コマンドのパスを通す

 

 tar -zvcf /home/backup/backup-`date +%y%m%d` /var/www/myweb/  ←この行から実際のコマンドを入力する

※上記のコマンドを実行させると、/var/www/myweb/フォルダ下のデータを/home/backup/フォルダ内にbackup[-バックアップした時間]の名前で圧縮保存されます。

 

2.上記のスクリプトファイルが実行できるように権限を与えます。

# chmod a+x /root/シェルスクリプト名

 

3.指定した時間に自動で実行させるため、cronに登録します。

 下記の内容を入力する。状況に応じて実行したい時間を設定します。

# vi /etc/crontab
cron動作時に記載したアドレスに確認メールが届く(送りたくない場合はMAILTO=""にする)

MAILTO=メールアドレス


(分 時 日 月 曜日 user_name command の順に記述していく)

例1、5分おきに実行

*/5 * * * * root /root/シェルスクリプト名1


例2、0時,8時,12時,16時,20時のそれぞれの5分に実行

5 0,8,12,16,20 * * * root /root/シェルスクリプト名2


例3、12時00分に実行

0 12 * * * root /root/シェルスクリプト名3

 

実行権限を与えられたシェルスクリプトを手動で実行させるには、スクリプトファイルを記述してそのまま実行します。

#シェルスクリプトファイル.sh

 もしくは

#sh シェルスクリプトファイル.sh

 

サーバの起動時に自動で実行させたいコマンドがあればシステムに登録します。例えば、ファイアウォールの設定をしたとしても、再起動するともう一度設定をやり直さないといけません。であれば、起動時に毎回設定をしてくれるスクリプトを作成すれば煩わしくありませんし、設定し忘れることもありませんね。

 

1.スクリプトファイルを作成する

下記の例では、ファイアウォールであるiptablesのシェルスクリプトを自動実行させています。

# vi /etc/init.d/シェルスクリプト名
#!/bin/sh  ←決まり文句
PATH=/bin:/usr/bin:/sbin:/usr/sbin  ←決まり文句、コマンドのパスを通す

iptables-restore /etc/iptables_save  ←この行以下に実際のコマンドを入力する

※上記のコマンドを実行させると、ファイアウォールの設定を読み込みます。

 

2.スクリプトファイルが実行できるように権限を与えます
# chmod a+x /etc/init.d/作成したシェルスクリプト名

 

3.システムに登録します

サーバ起動時に作動させる設定(debian特有コマンド)

# update-rc.d 作成したシェルスクリプト名 defaults

逆に、登録した設定を解除する場合(debian特有コマンド)

# update-rc.d 作成したシェルスクリプト名 remove

 

 

玄箱で遊ぼう!!―玄箱/玄箱HG対応玄箱で遊ぼう!!―玄箱/玄箱HG対応
鈴木 哲哉

玄箱をハックしよう!―ハックキットで夢のVine Linuxホームサーバー 玄箱PROで遊ぼう!! Debian 辞典 (Desktop reference) Seagate 3.5inch 内蔵ハードディスク 2.0TB 7200rpm 64MBキャッシュ 1TBプラッタ技術採用 SATA3.0 ST2000DM001 ハックキットで夢のDebian GNU/Linuxサーバー 玄箱PROをハックしよう!

by G-Tools