• 締切済み

サーバにアップされるファイルの三世代管理について

現在、不定期に更新されるファイルのバックアップをSUNのサーバにTFTPで送っています。 しかし、SUNのサーバにはファイルの新旧を問わず、すべてのファイルが保存され、サーバのディスク容量を圧迫しつつあります。 そこで、タイムスタンプ等のパラメータを用いて、そのうちの新しい更新ファイル3つのみをSUNのサーバに保存するようにしたいと思っています。このファイルの種類は多岐にわたります。 A0808AX--A0807GT--B0805YT--B0808JX←(8/8アップロードされたB-JXのファイル) A0812AX--A0901GT--B0902YT--B0903JX A0908AX--A0927GT--B0924YT--B0928JX A1008AX○A1013GT○B1001YT○B1005JX○ A1113AX○A1115GT○B1121YT○B1112JX○ A1223AX○A1211GT○B1219YT○B1221JX○ それぞれの種類のファイルで○の三世代だけ管理し、古いファイルは削除する場合 ls -lt A*AX*|tail +4 |xargs rm ls -lt A*GT*|tail +4 |xargs rm ls -lt B*YT*|tail +4 |xargs rm ls -lt B*JX*|tail +4 |xargs rm このようにたびたびワイルドカードを指定しなくてよいような方法をご存知でしたら教えてください。 よろしくお願いします。

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

問題が、「ファイル名の先頭1文字と、数字が続いた後の英文字2文字を抽出して、異なるパターンのものがどれだけあるか知りたい」とリダクションできるなら、以下のようなコマンドで出来ます: ls -1|perl -ne 'print $1,",",$2,"¥n" if /^(?w)?d+(?w{2})/'|sort|uniq ここから削除するコマンドを組み立てれば良いかと。 あるいは、ファイル送信が毎週特定曜日に送られてくるなら、3週間より古いものを削除するという手もあります。 ここらへん現場を知っている人でないと、ジャストフィットな案は解らないと思われるので、運用要件とかを詳しく説明できないのであれば、前提条件を限定的かつ汎用的なものとした質問にしたほうが、回答がつきやすいと思います。

関連するQ&A

専門家に質問してみよう