
次の検索構文は、10日より古いファイルを印刷します。
find /var/log/ambari-metrics-collector -type f -mtime +10 -regex '.*\.log.*[0-9]$' -print
/var/log/ambari-metrics-collector/collector-gc.log-201808130951
/var/log/ambari-metrics-collector/collector-gc.log-201808130403
/var/log/ambari-metrics-collector/gc.log-201808011229
/var/log/ambari-metrics-collector/collector-gc.log-201808011229
/var/log/ambari-metrics-collector/gc.log-201808091332
タイムスタンプがファイルパスの前に来るように、次の例を印刷するには構文に追加する必要があります。
2018 Aug 28 14:20 /var/log/ambari-metrics-collector/collector-gc.log-201808130951
2018 Aug 28 12:12 /var/log/ambari-metrics-collector/collector-gc.log-201808130403
2018 Aug 28 14:32 /var/log/ambari-metrics-collector/gc.log-201808011229
2018 Aug 28 14:32 /var/log/ambari-metrics-collector/collector-gc.log-201808011229
2018 Aug 28 11:22 /var/log/ambari-metrics-collector/gc.log-201808091332
答え1
GNUの場合は代わりにfind
使用してください。たとえば、次のようになります。-printf format
-print
find /var/log/ambari-metrics-collector -type f -mtime +10 -regex '.*\.log.*[0-9]$' -printf '%TY %Tb %Td %TH:%TM %p\n'
最初の文字 - 当時の「タイプ」:
%T
--時間を変えてください。%C
——創造的な時間。%A
- 面接時間。
2番目の文字(つまり、時間の「タイプ」の直後)は、表示するstrftime()
/のフィールドです。date
-mtime +10
超過したファイルを慎重に見つけてください。1110日以外の日(日数で降りた年齢厳しく10より大きい)。
また、たとえば-regex '.*\.log.*[0-9]$'
ファイルと一致することに注意してください。より厳しい基準をfoo.login/file.tar.bz2
使用することをお勧めします-name '*.log*[0-9]'
(まだ一致していますfile.login.tar.bz2
)。