差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
バックアップについて [2023/06/12 09:13] – 133.11.222.90 | バックアップについて [Unknown date] (現在) – 削除 - 外部編集 (Unknown date) 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
- | # バックアップについて | ||
- | ## シーケンスデータ | ||
- | |||
- | 2019年以降はm64k:/ | ||
- | |||
- | ``` | ||
- | ssh m32s | ||
- | cd / | ||
- | sudo rsync -av --progress --exclude ' | ||
- | ``` | ||
- | |||
- | 2020年以降のいくつかはm64g:/ | ||
- | |||
- | ``` | ||
- | ssh m32s | ||
- | cd / | ||
- | sudo rsync -av --progress --exclude ' | ||
- | ``` | ||
- | |||
- | |||
- | ## crontab一覧 | ||
- | |||
- | ``` | ||
- | $ for i in `qhost|grep ^m[1-9]|grep -v ^m50v|awk ' | ||
- | m12 | ||
- | m1536 | ||
- | m16 | ||
- | m208 | ||
- | 27 11 * * * yoshitake.kazutoshi / | ||
- | |||
- | m24 | ||
- | */10 * * * * yoshitake.kazutoshi cd / | ||
- | m24m | ||
- | m24n | ||
- | m256y | ||
- | 20 2 1-7 * * root [ " | ||
- | 20 2 1-7 * * root [ " | ||
- | 20 2 1-7 * * root [ " | ||
- | m32 | ||
- | m32a | ||
- | m32b | ||
- | m32i | ||
- | m32r | ||
- | 33 2 * * * root rsync -av --delete m32s:/m2 /data/ | ||
- | |||
- | m32s | ||
- | |||
- | m384 | ||
- | m512 | ||
- | m512b | ||
- | m512i | ||
- | m512p | ||
- | |||
- | m64g | ||
- | m64k | ||
- | m64m | ||
- | m768 | ||
- | 27 11 * * * yoshitake.kazutoshi / | ||
- | #00 2 * * 2 root certbot renew --post-hook " | ||
- | 1 1 2 * * yoshitake.kazutoshi bash / | ||
- | m768b | ||
- | m8 | ||
- | m8b | ||
- | m96 | ||
- | m96b | ||
- | 17 14 * * * yoshitake.kazutoshi / | ||
- | ``` | ||
- | |||
- | ## Hyper-V | ||
- | |||
- | | ||
- | |||
- | | ||
- | |||
- | | ||
- | |||
- | | ||
- | |||
- | | ||
- | |||
- | ### 設定方法 | ||
- | |||
- | D: | ||
- | |||
- | Powershellを管理者権限で開き、```Set-ExecutionPolicy RemoteSigned```を実行。 | ||
- | |||
- | タスクスケジューラでタスクの作成を行い、プログラムとしてpowershell.exeを指定し、引数にhyper-v-back.ps1を指定。「最上位の特権で実行する」にチェックを入れる(管理者権限でないとVMのエクスポートは実行できない)。ユーザーがログインしていなくても実行にもチェック。 | ||
- | |||
- | |||
- | ## www | ||
- | |||
- | | ||
- | |||
- | | ||
- | |||
- | | ||
- | |||
- | ``` | ||
- | #!/bin/bash | ||
- | |||
- | cd / | ||
- | echo " | ||
- | date >> / | ||
- | rsync -a sakura:* . | ||
- | echo status: $? >> / | ||
- | echo " | ||
- | date >> / | ||
- | ``` | ||
- | |||
- | dokuwikiのバックアップを起動したい場合は、m768の/ | ||
- | |||
- | ``` | ||
- | docker container run --name test1 --rm -p 8082:80 -v / | ||
- | ``` | ||
- | |||
- | を起動すると、http:// | ||
- | |||
- | ## www さくらサーバでのバックアップ | ||
- | |||
- | | ||
- | |||
- | ``` | ||
- | / | ||
- | |||
- | $ more ~/ | ||
- | # | ||
- | |||
- | find / | ||
- | i=`date " | ||
- | / | ||
- | ``` | ||
- | |||
- | ## m768のwwwバックアップ | ||
- | |||
- | m32s上で毎日3: | ||
- | |||
- | ``` | ||
- | $ more / | ||
- | |||
- | 11 3 * * * root rsync -a --delete m768:/etc m768:/ | ||
- | ``` | ||
- | |||
- | ## 共有フォルダ(/ | ||
- | |||
- | | ||
- | |||
- | ``` | ||
- | 13 1 * * * root rsync -a --delete /m2/ / | ||
- | ``` | ||
- | |||
- | ## 共有フォルダ(/ | ||
- | |||
- | | ||
- | |||
- | ``` | ||
- | #!/bin/bash | ||
- | |||
- | cd / | ||
- | echo " | ||
- | date >> / | ||
- | |||
- | #for i in download home root tool tool-all; | ||
- | # do rsync -a /suikou/$i . | ||
- | #done | ||
- | |||
- | for i in db download tool tool-all db; | ||
- | do rsync -a --delete /suikou/$i . | ||
- | done | ||
- | |||
- | rsync -a --delete /root . | ||
- | rsync -a --delete /home . | ||
- | |||
- | echo status: $? >> / | ||
- | echo " | ||
- | date >> / | ||
- | |||
- | echo "start shared" | ||
- | cd / | ||
- | #rsync -a / | ||
- | rsync -a --delete / | ||
- | echo status: $? >> / | ||
- | echo "fin shared" | ||
- | date >> / | ||
- | |||
- | ``` | ||
- | |||
- | DELL T1700上で、吉武のu-tokyo OneDriveアカウントと\\synology.s\sharedの同期をFreeFileSyncを使って1分毎に行っている。 | ||
- | |||
- | また、synology上で、1日1回バックアップを行い、30日分のバックアップを保持するように設定している。 | ||
- | |||
- | ## m256yへバックアップ | ||
- | |||
- | ``` | ||
- | m768:/etc m768:/ | ||
- | sakura:www sakura: | ||
- | / | ||
- | ``` | ||
- | をm256yの/ | ||
- | |||
- | |||
- | ## ファイル数の多いディレクトリについて | ||
- | |||
- | ディスク使用量を計算するとき、du -hc, ncduなどのコマンドが戻ってくるのが遅くなるし、ディスクを移すときに時間がかかってしまうので、ファイル数の大きなディレクトリは基本的には | ||
- | |||
- | ``` | ||
- | sudo zip -ry < | ||
- | sudo rm -rf < | ||
- | ``` | ||
- | で一つのzipファイルにまとめてある。 | ||
- | zipならtar.gzと違って、zipinfoコマンドでファイル一覧をインデックスから素早く見られるし、zipの中の1ファイルだけを限定して解凍することも下記のように可能。 | ||
- | |||
- | ``` | ||
- | unzip zipfile.Zip path/ | ||
- | ``` | ||
- | |||
- | ## Hyper-Vバックアップスクリプト | ||
- | |||
- | ``` | ||
- | <### | ||
- | このスクリプトについて: | ||
- | |||
- | 仮想マシンをエクスポートする処理を行います。 | ||
- | (併せて、古いエクスポートを削除します) | ||
- | |||
- | このシェルはタスクスケジューラーによって毎日 AM 2:00 に起動されます。 | ||
- | |||
- | |||
- | STEP1: 仮想マシンをエクスポート | ||
- | STEP2: 古いエクスポートを削除 | ||
- | ###> | ||
- | |||
- | |||
- | |||
- | <### | ||
- | 【STEP 1】 | ||
- | 仮想マシンを下記パスにエクスポートする | ||
- | E: | ||
- | ###> | ||
- | |||
- | ### 日付の取得 | ||
- | $NowDate = Get-Date -Format " | ||
- | |||
- | ### エクスポート対象の仮想マシンの指定 | ||
- | $TragetVM01 = " | ||
- | $TragetVM02 = " | ||
- | $TragetVM03 = " | ||
- | |||
- | ### エクスポート先のパスを指定 | ||
- | $ExportPath = " | ||
- | |||
- | ### Exportの成功 or 失敗の判断を STEP2(古いフォルダの削除)でするための変数($CheckCode)を定義 | ||
- | ### 最初に0(=成功)を代入しておく。(失敗を検知したら 1 が代入される) | ||
- | $CheckCode = 0 | ||
- | |||
- | |||
- | ### コマンドエラー時に Try-Catch の Catch 部分が実行されるように、デフォルトパラメータを Stopに変更 | ||
- | $ErrorActionPreference = " | ||
- | |||
- | |||
- | ### TargetVM01のエクスポート | ||
- | ### try-catch を使って、エラー発生時の処理を実装(catch内がエラー時のアクション) | ||
- | Try { | ||
- | ### 仮想マシンのエクスポートを実行 | ||
- | Export-VM -Name $TragetVM01 -Path $ExportPath\$TragetVM01\$NowDate -ErrorVariable ExportError01 | | ||
- | Out-Null | ||
- | |||
- | ### Export-VM がエラーになったら、エラー内容をファイルに出力して、$CheckCode に 1を代入 | ||
- | }Catch{ | ||
- | |||
- | ### エラーを このファイルに出力→ $ExportPath\ExportErrorCode-$TragetVM01-$NowDate.txt | ||
- | echo $ExportError01 | | ||
- | Out-File $ExportPath\$TragetVM01\$NowDate.txt | ||
- | |||
- | ### エラーの場合は変数 ' | ||
- | $CheckCode = 1 | ||
- | |||
- | } | ||
- | Out-Null | ||
- | |||
- | |||
- | ### TargetVM02のエクスポート | ||
- | ### try-catch を使って、エラー発生時の処理を実装(catch内がエラー時のアクション) | ||
- | |||
- | Try { | ||
- | ### 仮想マシンのエクスポートを実行 | ||
- | Export-VM -Name $TragetVM02 -Path $ExportPath\$TragetVM02\$NowDate -ErrorVariable ExportError02 | | ||
- | Out-Null | ||
- | |||
- | ### Export-VM がエラーになったら、エラー内容をファイルに出力して、$CheckCode に 1を代入 | ||
- | }Catch{ | ||
- | |||
- | ### エラーを このファイルに出力→ $ExportPath\ExportErrorCode-$TragetVM02-$NowDate.txt | ||
- | echo $ExportError02 | | ||
- | Out-File $ExportPath\$TragetVM02\$NowDate.txt | ||
- | |||
- | ### エラーの場合は変数 ' | ||
- | $CheckCode = 1 | ||
- | |||
- | } | ||
- | Out-Null | ||
- | |||
- | |||
- | ### TargetVM03のエクスポート | ||
- | ### try-catch を使って、エラー発生時の処理を実装(catch内がエラー時のアクション) | ||
- | |||
- | Try { | ||
- | ### 仮想マシンのエクスポートを実行 | ||
- | Export-VM -Name $TragetVM03 -Path $ExportPath\$TragetVM03\$NowDate -ErrorVariable ExportError03 | | ||
- | Out-Null | ||
- | |||
- | ### Export-VM がエラーになったら、エラー内容をファイルに出力して、$CheckCode に 1を代入 | ||
- | }Catch{ | ||
- | |||
- | ### エラーを このファイルに出力→ $ExportPath\ExportErrorCode-$TragetVM03-$NowDate.txt | ||
- | echo $ExportError03 | | ||
- | Out-File $ExportPath\$TragetVM03\$NowDate.txt | ||
- | |||
- | ### エラーの場合は変数 ' | ||
- | $CheckCode = 1 | ||
- | |||
- | } | ||
- | Out-Null | ||
- | |||
- | |||
- | <### | ||
- | 【STEP 2】 | ||
- | 古いエクスポートの削除 | ||
- | 2世代(過去2日分)のこす ← HDDの使用状況を見ながら調整 | ||
- | |||
- | $DeleteTime で経過時間を指定。 | ||
- | $DeleteTime = " | ||
- | 2日 = 2880min (60min * 24hour * 2day) | ||
- | 3日 = 4320min (60min * 24hour * 3day) | ||
- | 10日 = 14400min (60min * 24hour * 10day) | ||
- | ###> | ||
- | # | ||
- | $DeleteTime = " | ||
- | |||
- | |||
- | ### Export-VM が例外処理で停止していなければ($CheckCode = 0)、古いフォルダの削除実施 | ||
- | if ( $CheckCode -eq 0 ) { | ||
- | ### 対象フォルダ配下のリストを取得 | ||
- | ### 作成されてから $DeleteTime の値を超過したフォルダ・ファイルを選択/ | ||
- | ### 対象を絶対パスに変換し、削除 | ||
- | Get-ChildItem $ExportPath | | ||
- | Where-Object { | ||
- | $_.CreationTime -lt (Get-Date).AddMinutes($DeleteTime) | ||
- | } | | ||
- | foreach { | ||
- | Remove-Item -Recurse -Force $_.FullName | ||
- | } | ||
- | ### $Code != 0 であれば(1が代入されていれば)処理を中止。 | ||
- | } else { | ||
- | exit | ||
- | } | ||
- | ``` |