よく使うコマンドの組み合わせ
よく使うコマンドの組み合わせ
Section titled “よく使うコマンドの組み合わせ”実務でよく使うコマンドの組み合わせを実践例とともに解説します。
エラーログの確認
Section titled “エラーログの確認”# 最新のエラーを確認tail -100 /var/log/app.log | grep ERROR
# エラーの数をカウントgrep -c ERROR /var/log/app.log
# エラーが発生した時間を確認grep ERROR /var/log/app.log | awk '{print $1, $2}'
# エラーの種類ごとにカウントgrep ERROR /var/log/app.log | awk '{print $NF}' | sort | uniq -cアクセスログの分析
Section titled “アクセスログの分析”# アクセス数の多いIPアドレスawk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
# ステータスコードの統計awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
# 特定の時間帯のアクセスgrep "01/Jan/2024:10" /var/log/nginx/access.log | wc -lファイル操作
Section titled “ファイル操作”大きなファイルの検索と削除
Section titled “大きなファイルの検索と削除”# 100MB以上のファイルを検索find /home -type f -size +100M
# 古いファイルを検索(30日以上前)find /tmp -type f -mtime +30
# 古いファイルを削除(注意が必要)find /tmp -type f -mtime +30 -delete
# 空のファイルを検索find /home -type f -empty
# 空のディレクトリを検索find /home -type d -emptyファイルの整理
Section titled “ファイルの整理”# 拡張子ごとにファイルを整理for ext in txt pdf jpg; do mkdir -p $ext mv *.$ext $ext/ 2>/dev/nulldone
# 日付ごとにファイルを整理for file in *.log; do date=$(stat -c %y "$file" | cut -d' ' -f1) mkdir -p "$date" mv "$file" "$date/"doneプロセス管理
Section titled “プロセス管理”プロセスの監視と管理
Section titled “プロセスの監視と管理”# CPU使用率の高いプロセスps aux --sort=-%cpu | head -10
# メモリ使用率の高いプロセスps aux --sort=-%mem | head -10
# 特定のプロセスのリソース使用状況ps aux | grep nginx | awk '{sum+=$3} END {print "CPU:", sum"%"}'
# プロセスを終了(安全な方法)pkill -15 nginx # SIGTERMで正常終了sleep 5pkill -9 nginx # SIGKILLで強制終了(必要に応じて)システム監視
Section titled “システム監視”リソース使用状況の確認
Section titled “リソース使用状況の確認”# CPUとメモリの使用状況を1行で表示echo "CPU: $(top -bn1 | grep "Cpu(s)" | awk '{print $2}') | Memory: $(free -h | awk '/^Mem:/ {print $3 "/" $2}')"
# ディスク使用率が80%を超えるパーティションdf -h | awk '$5+0 > 80 {print $0}'
# メモリ使用率が高いプロセスps aux --sort=-%mem | head -5バックアップとアーカイブ
Section titled “バックアップとアーカイブ”バックアップスクリプト
Section titled “バックアップスクリプト”#!/bin/bash# バックアップスクリプト
BACKUP_DIR="/backup"SOURCE_DIR="/var/www"DATE=$(date +%Y%m%d_%H%M%S)
# バックアップの作成tar -czf $BACKUP_DIR/backup_$DATE.tar.gz $SOURCE_DIR
# 古いバックアップの削除(7日以上前)find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
# バックアップの確認if [ -f "$BACKUP_DIR/backup_$DATE.tar.gz" ]; then echo "Backup successful: backup_$DATE.tar.gz"else echo "Backup failed!" exit 1fiネットワーク診断
Section titled “ネットワーク診断”# ポートが開いているか確認nc -zv hostname 80
# 複数のポートを確認for port in 80 443 8080; do nc -zv localhost $portdone
# 接続しているプロセスを確認netstat -tulpn | grep LISTENよく使うコマンドの組み合わせのポイント:
- ログ分析: grep、awk、sort、uniqの組み合わせ
- ファイル操作: find、xargs、mvの組み合わせ
- プロセス管理: ps、grep、awkの組み合わせ
- システム監視: top、free、dfの組み合わせ
- バックアップ: tar、find、dateの組み合わせ
適切にコマンドを組み合わせることで、効率的な作業ができます。