
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 days
date -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
答え2
正しい tar 実装を使用する場合、これは簡単です。
star -c -f out.tar -find /opt/splunk/etc -type f -mtime -7
もちろん、-find
パラメータの後にさらにディレクトリ名を追加できます。
find
stat(2)
内部完了呼び出しはlibfind
コードで使用され、star
2番目に実行する必要がないため、別のプロセスで使用するよりもはるかに高速です。