シェルスクリプト
サーバーの管理をする上でシェルスクリプトの知識は必要です。 自動で何かを処理したい場合にシェルスクリプトを作成し、cronで時間指定して実行させる等便利な機能です。
例1:定時にデータのバックアップを行いたい場合
1.スクリプトファイルを作成する
ファイル編集:スクリプト作成
シェルスクリプトを記述するファイルを作成
# vi /root/シェルスクリプト名
下記の内容を記入する
#!/bin/sh ←決まり文句
PATH=/bin:/usr/bin:/sbin:/usr/sbin ←決まり文句、コマンドのパスを通す
tar -zvcf /home/backup/backup-`date +%y%m%d` /var/www/myweb/ ←この行以下に実際のコマンドを入力する
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[-バックアップした時間]の名前で圧縮保存されます。
コマンド:権限変更
シェルスクリプトファイルに実行権を与える
# chmod a+x /root/シェルスクリプト名
ファイル編集:/etc/crontab
指定した時間に上記で作成したファイルを実行させるために登録します
# 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
例2:サーバの再起動時に自動で実行させたいコマンドがあればシステムに登録します
1.スクリプトファイルを作成する
ファイル編集:スクリプト作成
シェルスクリプトを記述するファイルを作成。このディレクトリに作成し、以下の手順を行います
# vi /etc/init.d/シェルスクリプト名
下記の内容を記入する
#!/bin/sh ←決まり文句
PATH=/bin:/usr/bin:/sbin:/usr/sbin ←決まり文句、コマンドのパスを通す
iptables-restore /etc/iptables_save ←この行以下に実際のコマンドを入力する
PATH=/bin:/usr/bin:/sbin:/usr/sbin ←決まり文句、コマンドのパスを通す
iptables-restore /etc/iptables_save ←この行以下に実際のコマンドを入力する
※上記のコマンドを実行させると、ファイアウォールの設定を読み込みます。
コマンド:権限変更
シェルスクリプトファイルに実行権を与える
# chmod a+x /etc/init.d/作成したシェルスクリプト名
コマンド:権限変更
サーバ起動時に作動させる設定(debian特有コマンド)
# update-rc.d 作成したシェルスクリプト名 defaults
上記で登録した設定を解除(debian特有コマンド)
# update-rc.d 作成したシェルスクリプト名 remove