システム管理コマンド


1. httpdが停止していたら自動起動

# /usr/bin/ps ax | grep -v grep | grep -q httpd || /usr/bin/systemctl start httpd.service
■実行と同時にメールを送信する場合
/usr/bin/ps ax | grep -v grep | grep -q httpd || (/usr/bin/systemctl start httpd.service && (echo 'Sent from www.example.jp' | mail -s 'Started httpd service.' xxxx@example.jp))
 
※このコマンドをcronで定期実行します。

2. メモリ使用率リストの表示

メモリ使用率の多いプロセスを上位から順番に10行表示します。
# ps alx | awk '{printf ("%d\t%s\n", $8,$13)}' | sort -nr | head -10

3. rootのスプールメールを空にするスクリプト

rootのスプールメールのファイルサイズが膨大になるので、整理するスクリプトです。
■処理の内容
  • 「/var/__backup__/misc」に年月の6桁のディレクトリを作成。
  • 「/var/spool/mail/root」を圧縮して上記ディレクトリに保存。
  • 「/var/spool/mail/root」を空にする。

#!/bin/bash

#----- backup file save base directory -----
BACKUP_BASE_DIR=/var/__backup__/misc
MAIL_SPOOL_DIR=/var/spool/mail
#-------------------------------------------

#----- backup file save base directory -----
cd $BACKUP_BASE_DIR
 
#----- monthly date directory create -----
MONTH_DATE_VAL="$(date "+%Y%m")"
if [ ! -d $MONTH_DATE_VAL ]; then
    mkdir $MONTH_DATE_VAL
fi
cd $MONTH_DATE_VAL
 
#----- get serial date value -----
TODAY_DATE_VAL="$(date "+%Y%m%d")"
SERIAL_DATE_VAL="$(date "+%s")"
 
#----- compress root mail spool files -----
FILENAME=spool_mail_root_${TODAY_DATE_VAL}.tar.gz
if [ -f $FILENAME ]; then
    TEMP_FILENAME=${FILENAME}.${SERIAL_DATE_VAL}
    mv $FILENAME $TEMP_FILENAME
fi
cd $MAIL_SPOOL_DIR
tar cvfz $BACKUP_BASE_DIR/$MONTH_DATE_VAL/$FILENAME root
cat /dev/null > root

上記スクリプトを「/root/empty_root_mail.sh」として、1週間に1回定期実行。
0 0 * * 1 /bin/bash /root/empty_root_mail.sh 2>/dev/null

4. サブディレクトリのディスク容量をリストアップ

サーバ内において、使用容量の大きなディスクをリスト表示します。
# du -k /* | sort -rn | head -10
※「head -10」は先頭から10行表示させる、という意味です。この数値を変更すれば、表示行数を変更できます。

5. ディスク容量の一覧をTUI(Text User Interface)で表示するコマンド

「ncdu」コマンドをインストールします。
# yum --enablerepo=epel install ncdu

6. Macシステムの作成する「.DS_Store」ファイルの削除

「.DS_Store」ファイルがセキュリティ監査でリスク「中」に判定されたので、削除を行う。
# find / -name '.DS_Store' -print -delete



最終更新:2023年06月22日 07:13