私はzshターミナル履歴(〜/ .zsh_history)のスマートバックアップを実装しようとしています。 Bashの場合も同様であり、違いはなく、ファイル名は.bash_historyです。
これまで私の記録に秘密などが含まれる可能性があるので、個人的なGitリポジトリを作成することにしました。私は毎月のディレクトリを作成し、デフォルトで毎日のタイムスタンプを使って毎日の毎月のディレクトリに〜/ .zsh_historyの内容をコピーするためのansibleスクリプト(bashスクリプトを使用して実行できます)を作成しました。私はこのスクリプトを毎日のクローンジョブに入れました。
問題は重複が多すぎるということ。最初は、バックアップが成功した後に履歴ファイルの内容を削除できると思いましたが、これが再帰検索を必要としないことに気づきました。今は前日と比較して記録の変化だけをバックアップする機能を作ってみようか考えています。今日の履歴が(1、2、3)命令で、明日の履歴が(1、2、3、4、5)の場合、翌日のバックアップは完全ではなく(4、5)のみを取得します。 2つのグループの交差点と同じです(昨日の履歴ファイルは1つで、今日の履歴ファイルは別のものです(昨日を含むグループよりも大きいグループ!)。
この問題を解決するための最良の方法は何ですか?同様のプロジェクトの他の例が見つからなかったので、助けてくれてありがとう。
以下は、参照用の履歴ファイルの数行です。
: 1659932134:0;git commit -m "First initial best commit"
: 1659932139:0;git push
: 1659932147:0;git push -u origin main
: 1659932151:0;git push
: 1660008827:0;cat ~/.zshrc
: 1660008832:0;cat ~/.zsh_history
たとえば、翌日のファイルは次のようになります。
: 1659932134:0;git commit -m "First initial best commit"
: 1659932139:0;git push
: 1659932147:0;git push -u origin main
: 1659932151:0;git push
: 1660008827:0;cat ~/.zshrc
: 1660008832:0;cat ~/.zsh_history
+++++++++ ( this is just me adding to show the difference)
: 1659932113:0;git add .gitignore
: 1659932117:0;git add backups/
: 1659932119:0;git add hist_backup.yml
答え1
~について
それでは、この問題を解決するための最良の方法は何ですか?
~から実行されたすべてのコマンド履歴(本番サーバーで管理者が実行)非常に一般的な要求であり、auditd
正しいツールかもしれません。
~について
同様のプロジェクトの他の例が見つかりませんでした。
おそらくタイムスタンプのために検索を可能にするように求められているようです。データベースよりgit
。それでは、たぶんこれが起こるかもしれません。データベースへのbash履歴の記録。
~について
スマートバックアップを実行するには?
で増分バックアップを表示することもできますrsync
。