TAR:bashスクリプトの複数のディレクトリ

TAR:bashスクリプトの複数のディレクトリ

5つの異なるディレクトリにある7日未満のTARファイルを試しています。

findコマンドを使用すると、このコマンドを使用した後にTARが必要なファイルを見つけることができます。

find /opt/splunk/var/lib/splunk/firewall/db/ -type f -mtime -7
find /opt/splunk/var/lib/splunk/cb/db/ -type f -mtime -7
find /opt/splunk/etc -type f -mtime -7
find /opt/splunk/var/lib/splunk/cb/db/ -type f -mtime -7
find /opt/splunk/var/lib/wineventlog/db -type f -mtime -7

この5つのディレクトリにバックアップする必要がある複数のファイルがあります。

findコマンドを使用して見つかったファイルをTARして7日以上経過したファイルのみをインポートするにはどうすればよいですか?これが完了したら、1つの大きなファイルにパッケージ化してリモートサーバーに同期したいと思います。

これは現在の週間cronで実行されているスクリプトですが、このディレクトリに7日間のファイルしか必要ないため、少し時間がかかります。

#!/bin/bash
name=$(date '+%y-%m-%d')
tar -zcf /opt/splunk/var/backups/splunkbackup$(date '+%y-%m-%d').tar.gz 
/opt/splunk/etc /opt/splunk/var/lib/splunk/firewall 
/opt/splunk/var/lib/splunk/ossec /opt/splunk/var/lib/wineventlog 
/opt/splunk/var/lib/cb
rsync -avz --remove-source-files /opt/splunk/var/backups/splunkbackup* 
svc_splkbup@HOST:/var/log/splunk/backups/indexer

ベストアンサー1

man tar目的に応じて、-Tまたは-N

-ティー

 find ... | tar czf XXX.tgz -T -

どこ

  • ...それはあなたのfind選択です
  • XXX.tgzあなたのtarファイル
  • -T- tarにstdinから剥がすファイルを読み込むように指示します。

-N

-N、また使用することができます。まず、7日前(または)--newerファイルまたは日付を生成する必要があります。touch -7 daysdate -7 days

 tar -czf XXX.tgz -N ref /opt/splunk/{etc,var/lib,var/lib/w}

どこ

  • refあなたの参照文書または日付は何ですか?
  • /opt/splunk/{etc,var/lib,var/lib/w}に拡張される予定です。/opt/splunk/etc /opt/splunk/var/lib /opt/splunk/var/lib/w
  • ないことを参考にしてくださいfind

おすすめ記事