TrippyBoyの愉快な日々TrippyBoyの愉快な日々ネットワークエンジニアによる、LinuxやWindowsを基本としたIT系の逆引きサイト。252013シェアする今回、sambaにて設定しているゴミ箱フォルダ「.recycle」ディレクトリ配下のファイルがたまりに溜まってしまっていたという問題が発生。それがディスク容量を圧迫していました。定期的にファイルを削除する簡単な方法がないかと探してみました。したら、tmpwatchをちょちょっと変更したら利用できそうなので記事にしてみます。tmpwatchって何って話。time(trippyboy訳:特定の期間アクセスされていないファイルを削除するやーつ)となっています。tmpwatchのインストールはyumで簡単にできます。tmpwatchyumでインストールされたファイルを確認してみます。tmpwatch/etc/cron.daily/tmpwatch/usr/bin/tmpwatch/usr/sbin/tmpwatch/usr/share/doc/tmpwatch-2.9.16/usr/share/doc/tmpwatch-2.9.16/COPYING/usr/share/doc/tmpwatch-2.9.16/ChangeLog/usr/share/doc/tmpwatch-2.9.16/NEWS/usr/share/doc/tmpwatch-2.9.16/README/usr/share/man/man8/tmpwatch.8.gz#設定ファイルだけを見たいので「-qc」で見てみます。tmpwatch/etc/cron.daily/tmpwatch#上記を見ると「/etc/cron.daily」配下に「tmpwatch」というファイルが作成されたことがわかります。このファイルにて、特定の期間アクセスされていないファイルやディレクトリを削除する処理が行われています。fidoneこれを読み解く必要がありますね。シェルがわかる人は読めると思うのですが、tmpwatchに渡されているオプションの意味をまず確認しておきましょう。わかりやすいように赤字にしておきました。10日以上アクセスがないもの。dの代わりにm(min),h(hour)も指定できる。指定がない場合はhとして認識される。-u(–atime)、-m(–mtime)、-c(–ctime)がファイルやディレクトリのどの時間を対象としているのか、認識を深めるための検証をしてみました。ctimeが変更される#ここでもう一度スクリプトに戻ってみましょう。fidone上記の1から説明します。以下の記述は「\」で複数行に区切られているコマンドを1行にまとめています。/tmp/tmp/配下を対象として-umc(意味は上述を参照)が対象としている時間がから10日以上の期間が経過しているものを対象として削除します。-xや-Xを用いて対象外とするファイルやフォルダを指定しています。tmpwatch)に以下の記述があります。times.(trippyboy訳:もし「-u」、「-m」もしくは「-c」があわせて利用された場合、期間の判断は一番新しい日時を元に行われます。-umcのすべてが10日以上前のものでないと削除がされないということ。fidone上記はfor文を用いて「$d」を対象に、「$d」に収められているディレクトリ(後述)が、-umcが対象としている時間から30日以上の機関が経過しているものを強制的に削除しています。「$d」には以下のフォルダが入ります。上記のfor文から読み解くには、「{」「}」で囲われた「,」カンマ区切りのものがどのように処理されるかと、「?」がどう言う意味かが分かる必要があります。+何か一文字さて、長くなってしまいましたが、本来の目的はsambaで利用する.recycleディレクトリ配下を削除するというのが目的です。.recycleの保存場所が「/home/hoge/samba/.recycle」とした場合、7日間以前のファイルを削除するには、以下の記述を該当ファイルに追加します。今の会社は使用率1パーセントか2パーセントなんでまったく気にしなくなりました。それとSambaってローカル環境で使うと思うのですが、なぜかplesk11にsambaがついてました。それは面倒くさかったでしょうに。Excelつながりで、Linux場でPHPExcelというモジュール(?)を用いてExcelファイルが作れるようです。最近気になっていますけど、こういうお客さんの要望にはガッツリ自動化してメール送信したるわーってのも対応手段としてはいいかもしれませんね(・∀・)使用率1,2%って、ほぼ使っていないに等しいじゃないですかwwSambaはインターネット経由でも利用出来ます。基本的にローカルで利用するものとは思っていますが、ハードディスクの故障などの問題対象を行うのが面倒になるからレンタルでいいやぁーという手もあると思います。日本の企業は社外のストレージにデータを保存するのにアレルギーを持っている企業が多いのではないかと感じます。Googleドライブでいいじゃん。@13:24うちはハードディスクの故障はレンタルサーバーまかせです。壊れたことはありませんけどね。7の情報をご存知のようにinitがなくなり、systemdになりました。rhel7はレスキューターゲットとエマージェンシーターゲットを使います。レスキューターゲットはinit1に相当しエマージェンシーターゲットはルートファイルシステムがマウントできない場合に使うらしいです。モードの移行の仕方はカーネルの選択画面でeをうちこむとgrub.cfg(grub2)の編集画面に行こうします。systemd.unit=emergency.targetとうちこみF10をおすとエマージェンシーモードで起動します。レスキューモードはsystemd.unit=rescue.targetです。grubの編集画面で=の出し方はshift+”ほ”ではなくとなりの”へ”を使います。@18:38やっぱりそうなりますよね。ハードディスクの故障対応は嫌です(笑)せめてRAID構成にしておいて、壊れたらハード屋に直してもらうようなのであれば耐えられるかとは思いますが、壊れない(仮想ディスク環境で監視されている)環境のレンタルサーバーの方がいいと考えています。なんだか全然替ちゃって、今まで参考にしていたような優良サイトの情報が少しずつあてにならなくなるんじゃないかと思うと悲しいです。grub画面での「=」の出し方、キットいつか役に立ちそうです。Sinha%d人のブロガーが「いいね」をつけました。