タスク: システムをリモートでアップグレードしたり、新機能を追加したりする機能を提供すること。
やるべきことターゲット マシンの現在の環境のバックアップを作成し、アップグレードがどこかの段階で失敗した場合は、元の環境に戻します。
私のディレクトリ構造は次のようなものだとしましょう:
/home/user/project1/....bla bla
プロジェクト 1 には、シンボリック リンク、ハード リンク、ソフトウェアおよびファームウェアの実行可能ファイルなどが含まれます。
私のジレンマ
戦略 1 または 2 を使用する必要がありますか?
アップグレードが失敗した場合は、現在の環境全体をコピーして元に戻す必要がありますか?
例-> cp -p -r /home/user/project1/* /home/user/project1_backup/
アップグレードに失敗した場合 -->
mv /home/user/project1_backup/ /home/user/project1
環境全体を tarball し、アップグレードが失敗した場合は untar する必要がありますか? tar ボールを作成するには、シンボリック リンクとハード リンクを保存することに少し懐疑的です.. untar するときも同じです。
どの方法に従うべきか、そしてtarボールアプローチを使用する場合、bashコマンドはどうなるかという具体的な回答を提供してください。
私が知っ ている限り、tar ボールを untar する間、 tar -cvfz
gunzipはリンクと許可を保持しません。光を投げてください?