Rainbow Engine

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

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)

 

↓オススメの書籍

新しいLinuxの教科書

Adsense審査用広告コード


Adsense審査用広告コード


-Linux

執筆者:


comment

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

関連記事

Linuxで環境変数を永続化させる方法と手順について

<目次> (1) Linuxで環境変数を永続化させる方法と手順について  (1-1) 実現方法  (1-2) 設定手順 (1) Linuxで環境変数を永続化させる方法と手順について Linuxにおいて …

さくらVPS(CentOS6)にリモートデスクトップ環境を構築する方法

Linuxのサーバーにリモートデスクトップ環境を構築する手順について解説します。 <目次> >0.背景・目的・前提条件 >1.VNCサーバのインストール >2.VNCサーバの設定ファイル編集 >3.V …

Linux系OSのパッケージ管理システム(rpmやyum)及びリポジトリ(epel)について

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件 (2) rpm(パッケージ管理システム)  (2-1) rpmとは?  (2-2) rpmコマンド(追加・更新・削除) …

Linux(CentOS7)にTomcatをインストールする手順について

(0)目次&概説 (1) 記事の目的/前提 (2) 実施手順  (2-1) Tomcat用ユーザ/グループ作成  (2-2) 資源のダウンロード  (2-3) 資源の解凍  (2-4) 資源に必要権限 …

Linuxで一般ユーザ(rootスイッチ権限有り)を作成する方法

Linuxでユーザを作成する方法を書きます。 (0)目次 >(1)作業の背景・目的・前提条件 >(2)ユーザの作成 >(3)ユーザの「Wheel」グループへの追加 (1)作業の背景・目的・前提条件 「 …

  • English (United States)
  • 日本語
Top