Rainbow Planet (GT×IT×SP×SA)

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

01_IT技術 (Technology) 01_Linux

Linux:定期的に再起動するスクリプト

投稿日:2017年6月11日 更新日:

Linuxサーバーを定期的に再起動するスクリプトを紹介します。定期的に再起動するという処理はシステム構築においては、運用の中で定義される「死活監視」に関連してくる話になります。

●シェルとは?シェルスクリプトとは?
シェルスクリプトの前にシェルについての概要を記載します。シェルとはユーザーが入力したコマンドを解釈し、カーネルへの橋渡しを行うプログラムです。ユーザが直接OSを操作してエラーや不整合にならないようにOSを守る役割も果たすことからシェル(殻)という名前になったとされています。

シェルスクリプトはスクリプト言語の一種で、シェル(インタプリタ)にて解釈できる命令(コマンド)を組み合わせて作られるプログラムです。拡張子は「.sh」で、プログラミングのように繰り返しや分岐処理を行う事が出来ます。またコンパイルを行わず、インタプリタ(シェル)を指定してソースファイルを上から順番に直接に実行するため、コンパイル型の言語と比較すると速度が遅くなる傾向にあります。また参考までにWindows OSの場合、シェルスクリプトはバッチ処理と呼ばれ「.bat」拡張子で作成されます。

そして「カーネル」はOSの中核をなす部分で、ハードウェアとソフトウェアの仲介役としての各種機能を提供します。具体的には「プロセス管理」(CPUにプロセスを割り当てたり)や「メモリ管理」」や「ファイルシステム」などがあります。「メモリ管理」について、物理メモリと仮想メモリを利用するに際して、物理メモリと紐づく仮想的なアドレスを割り当てるが、その管理を行う。

●シェルスクリプトの一番最初の文言(「#!/bin/sh」など)について
シェルスクリプトの最初にある「#!」から始まる文言は”Shebang”と呼ばれ、実行時のインタプリタの指定を行っています。

●インタプリタについて
インタプリタはプログラムを”実行する都度”、そのプログラムを読み込み、CPUが処理可能な機械語に変換する役割を果たします。一方でコンパイラはプログラミング言語を”事前に”機械語に一括変換し、その状態でCPUに処理命令を行います。

それでは簡単ですがLinuxサーバを定期的に再起動するシェルスクリプトを紹介します。

1.usr/bin の直下にreboot.shを作成

cd /usr/bin
vi reboot.sh

2.以下のコマンドを記述

#!/bin/sh
shutdown -r now

3.etcの直下にcrontabに以下を記述

20 * * * * root sh /usr/bin/reboot.sh

ファイル全体では下記の様になります。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
20 * * * * root sh /usr/bin/reboot.sh

設定項目は左から「分」「時」「日」「月」「曜日」です。上記の例だと、毎日の毎時20分(13時20分→14時20分→15時20分・・・)に再起動する。

4.結果確認

再起動されているかどうかは下記より確認します。

last reboot

表示結果(例)

reboot   system boot  2.6.32-642.15.1. Sun Jun 11 11:21 - 11:40  (00:19)
reboot   system boot  2.6.32-642.15.1. Sun Apr  9 16:49 - 11:20 (62+18:30)
reboot   system boot  2.6.32-642.15.1. Sun Mar 26 17:54 - 11:20 (76+17:25)
reboot   system boot  2.6.32-642.11.1. Sun Mar 26 17:51 - 17:53  (00:02)

 

以上です。

Adsense審査用広告コード


Adsense審査用広告コード


-01_IT技術 (Technology), 01_Linux

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

複数のテキストデータ(.txtや.xml)から特定の単語を一括検索する方法

今回のテーマは「あるフォルダ内の複数のテキストデータ(.txtなど)について、その中身を開かずに特定の単語・キーワードを検索する方法」について記載します。 (0)目次&概説 (1) Windowsの場 …

【PL/SQL】”UTL_FILE”パッケージを利用して”.TXT”を読み込む方法

今回はPL/SQLのUTL_FILEパッケージを利用して、サーバ内にあるテキストファイルを読み込むプロシージャを作成したいと思います。 (0) 目次 (1) 事前準備:ディレクトリオブジェクトの作成( …

Windows Server2012で仮想サーバーのメモリ割当ての変更をする手順

(0)目次&概説 (1) 前提条件 (2) メモリ割当ての変更手順  (2-1) 事前作業(ログ取得)  (2-2) 仮想サーバーの停止  (2-3) リソース変更  (2-4) 仮想サーバーの起動 …

OracleDB11g で新規表領域とスキーマの作成

(0) 目次 (1) 表領域の作成 (2) スキーマの作成 (3) スキーマの接続権限を付与 (4) 用語解説 (1) 表領域の作成 表領域とデータベースファイル(dbf)を以下のコマンドで作成します …

クッキーとは?JSPでCookieを保存&取得するサンプルプログラムと代表的なメソッド紹介

(1) セッションとは (2) クッキーとは  (2-1) 概要  (2-2) サンプルプログラム   (2-2-1) 概要&画面遷移   (2-2-2) HelloCookie.jsp   (2-2 …

Top