スキップしてメイン コンテンツに移動

投稿

ラベル(コマンド)が付いた投稿を表示しています

Linuxで特定のパターンにマッチするファイルの削除方法

Linuxで特定のパターンにマッチするファイルの削除方法について簡単にメモ 例1: /tmpディレクトリ配下の128bit hash(例:e111c876b32143abccd98bb56542bcc2)のパターンにマッチするファイルをすべて削除 regextypeを指定しないと我々が普段(?)よく知っているposixのregexが使えないことに注意! find /tmp -type f -regextype posix-egrep -regex '\./[0-9a-f]{32}' -delete 例2: /tmpディレクトリ配下の、AAAで始まるディレクトリで、更新日が5日以前のものを、ディレクトリの中身のファイルも含めてすべて削除 最後の「-exec {} +」は複数のファイルをまとめてコマンド実行するという意味 「-exec {} ;」の場合はファイル一個ずつの処理になるので、rmの場合は「-exec {} +」の方が効率が良い。 find /tmp -mindepth 1 -maxdepth -type d -mtime +5 -name ".AAA*" -exec rm -rf {} +

Linuxで特定のディスクの使用率を調べるコマンド

Linuxで特定のディスクの使用率は下記のコマンドで調べられます。 df {対象のディレクトリパス} | awk '{print $5}' | sed -ne 2p | cut -d"%" -f1 応用で、Bashを使って下記の機能を実現させてみます。 対象ディレクトリを指定できるように 制限値より多い場合に実行失敗にする #!/bin/bash checkDiskUsage() { local $directory=$1 local $limit=$2 # 下記のコマンドの前にssh hostのようにすれば、リモートホストでも実行可能。 local used=`df $directory | awk '{print $5}' | sed -ne 2p | cut -d"%" -f1` echo "Disk usage of $directory: $used%" if [ $used -gt $3 ] then echo "Exceed limit of disk usage (greather than $limit%)" exit 1 fi } checkDiskUsage "/tmp" 80