Linuxにおける小ネタ その2

シェルスクリプトによる作業の自動化

 複数のコマンドを書式を守ってテキストファイルに保存、実行権限を与えることでコマンドを自動実行することができます。

例えば、

#!/bin/sh
wget ftp://ftp.freshrpms.net/pub/freshrpms/fedora/linux/5/freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm
rpm -ivh freshrpms-release-1.1-1.fc.noarch.rpm
yum -y install yum-fastestmirror yum-updateonboot
chkconfig yum on
chkconfig yum-updateonboot on
yum -y update

 という内容をテキストに書いてyum.shという内容で保存。実行権限を与える。

% chmod u+x yum.sh

 実行は

% ./yum.sh

 この場合、リポリトジの追加、高速ミラーサイト選択プラグイン、起動時yum実行プラグインのインストール、yumの有効化、起動時yum実行の有効化、yumによる全パッケージのアップデートを一気に行っています。なお、シェルスクリプトの場合は変数、ループや制御構造なども使用可能なためかなりの作業が可能です。

 エラーなど全ての出力ををログで残したい場合は

% ./yum.sh > log.txt 2>&1

とコマンドを打てばいいです。RAID 1構築の過程でインストールのたびに付きっ切りになるのが面倒だったので設定ファイルの変更などの部分を除いた大方の作業を自動化しました。80行近くになりましたが。