バックアップについて

バックアップについて

2019年以降はm64k:/data/backupに入っているので、そこをバックアップ。バックアップ先はm32s /data/backup/m64k-backup。(m64kは壊れたので、m768c:/data/backup/m64k-backupに変更した)

ssh m32s
cd /data/backup/m64k-backup/backup
sudo rsync -av --progress /suikou/files/m64k/backup/* .

2020年以降のいくつかはm64g(→m128g2):/data/backup/rawdataに入っているので、そこをバックアップ。バックアップ先はm32s。

ssh m32s
cd /data/backup/m64g-backup/backup/rawdata
sudo rsync -av --progress --exclude '201?-*' /suikou/files/m64g/backup/rawdata/* .
$  for i in `qhost|tail -n+4|awk '{print $1}'`; do a=`ssh $i cat /etc/crontab |grep -v "^#"|grep '*'`; if [ "$a" != "" ]; then echo "$a" > $i.txt; fi; done
::::::::::::::
m208.txt
::::::::::::::
27 11 * * * yoshitake.kazutoshi /home/yoshitake.kazutoshi/hdd/runhpssacli.cron.sh
::::::::::::::
m256y.txt
::::::::::::::
20 2 1-7 * * root [ "$(date '+\%w')" -eq 3 ] && /root/files/backup/backup-sakura-to-m256y-once.sh
20 2 1-7 * * root [ "$(date '+\%w')" -eq 4 ] && /root/files/backup/backup-m768-to-m256y-once.sh
20 2 1-7 * * root [ "$(date '+\%w')" -eq 5 ] && /root/files/backup/backup-suikou-m256y-once.sh
::::::::::::::
m32r.txt
::::::::::::::
#33 2 * * * root rsync -av --delete m32s:/m2 /data/
::::::::::::::
m32s.txt
::::::::::::::
*/10 * * * * yoshitake.kazutoshi cd /home/yoshitake.kazutoshi/attendance; ./get-attend-data.sh > log.txt 2>&1
15 9 * * 1 yoshitake.kazutoshi /home/yoshitake.kazutoshi/attendance/run-calc-attendance-rate.sh
1 5 * * * root rsync -a --delete /m2/ /data/backup/suikou/
1 4 * * * root rsync -a --delete m768c:/data/backup/m768-www/html /data/backup/m768-www/
1 14 * * * yoshitake.kazutoshi rsync -a --delete sakura:* /data/backup/sakura/
1 3 * * * yoshitake.kazutoshi rsync -a --delete --exclude '#recycle' --exclude .AppleDB synology:/volume1/Shared /data/backup/shared/
1 2 * * 3 root /root/files/backup/backup-shared-weekly.sh
1 1 2 * * yoshitake.kazutoshi bash /home/yoshitake.kazutoshi/backup/run-pull-pp-image.sh > /tmp/pull.log 2>&1
::::::::::::::
m512p.txt
::::::::::::::
27 11 * * * yoshitake.kazutoshi /home/yoshitake.kazutoshi/hdd/runperccli.cron.m512p.sh
::::::::::::::
m768.txt
::::::::::::::
27 11 * * * yoshitake.kazutoshi /home/yoshitake.kazutoshi/hdd/runhpssacli.cron.sh

P2Solo(192.168.251.213)上でbind, suikouvm, suikougwの3つのCentOS7サーバが稼働している。仮想ディスクの場所はE:\Hyper-V

Windows11へはリモートデスクトップ接続で、ユーザsuikou, パスワードsuikou

Windows11内でバックアップが実行されており、タスクマネージャで2時過ぎに「D:\backup」フォルダにバックアップが実行される。Hyper-Vバックアップスクリプト←をE:\Hyper-V\hyper-v-back.ps1などという名前で保存しておく。

5日分ほど保存するが、古いのは削除するようになっている。たまに「C:\Hyper-V\バックアップ定期」フォルダにバックアップを取っておくと良いかも。

m96bの/data/backup/suikou/vm 以下に不定期にバックアップをコピーしている。

D:\backupフォルダを作り、その中にCentOS7-bind, CentOS7-gw, CentOS7-vmフォルダを作る。

Powershellを管理者権限で開き、Set-ExecutionPolicy RemoteSignedを実行。

タスクスケジューラでタスクの作成を行い、プログラムとしてpowershell.exeを指定し、引数にhyper-v-back.ps1を指定。「最上位の特権で実行する」にチェックを入れる(管理者権限でないとVMのエクスポートは実行できない)。ユーザーがログインしていなくても実行にもチェック。

研究室のHP(このWikiも含む)は、m32s上でバックアップが実行される。

設定は/etc/crontabで設定されており、/data/backup/以下にバックアップが作成される。

これはrsyncで上書きバックアップしている。

dokuwikiのバックアップを起動したい場合は、m768の/var/www/html/dokuwikiに最新のデータをコピーした後、dokuwiki/.htaccessを削除し、

docker container run --name test1 --rm -p 8082:80 -v /var/www/html:/var/www/html php:7.4.24-apache

を起動すると、http://m768.s:8082/dokuwiki でアクセスできる。

さくらのWEB管理画面から、CRONの設定で、毎日5時に下記のスクリプトを実行している

/home/webpark1634/tool/mysqldump.sh

$ more ~/tool/mysqldump.sh
#!/usr/local/bin/bash

find /home/webpark1634/backup-mysql-5.7/ -mtime +10 -exec rm -f {} \;
i=`date "+%Y%m%d_%H%M%S"`
/usr/local/bin/mysqldump -Q -h mysql647.db.sakura.ne.jp -u webpark1634 -pOMEzimh7 webpark1634_blog > /home/webpark1634/backup-mysql-5.7/dump.$i.sql 2> /home/webpark1634/backup-mysql-5.7/err.$i.txt

m32s上で毎日3:11にバックアップ

$ more /etc/crontab

11 3 * * * root rsync -a --delete m768:/etc m768:/var/www/html /data/backup/m768-www/

m32s上のcrontabで下記のように毎日1時ごろバックアップ。

13 1 * * * root rsync -a --delete /m2/ /data/backup/suikou/

m32s上で/data/backup以下にrsyncでバックアップしている。

DELL T1700上で、吉武のu-tokyo OneDriveアカウントと\\synology.s\sharedの同期をFreeFileSyncを使って1分毎に行っている。

また、synology上で、1日1回バックアップを行い、30日分のバックアップを保持するように設定している。

m32rでバックアップ

m768:/etc m768:/var/www
sakura:www sakura:backup-mysql-5.7
/suikou/tool /suikou/db /suikou/download /suikou/tool-all /root /home/yoshitake.kazutoshi

をm256yの/data/backup/にバックアップ

ディスク使用量を計算するとき、du -hc, ncduなどのコマンドが戻ってくるのが遅くなるし、ディスクを移すときに時間がかかってしまうので、ファイル数の大きなディレクトリは基本的には

sudo zip -ry <dir_name.zip> <dir_name>
sudo rm -rf <dir_name>

で一つのzipファイルにまとめてある。 zipならtar.gzと違って、zipinfoコマンドでファイル一覧をインデックスから素早く見られるし、zipの中の1ファイルだけを限定して解凍することも下記のように可能。

unzip zipfile.Zip path/inside/Zip/file.txt
<###
    このスクリプトについて:
 
    仮想マシンをエクスポートする処理を行います。
    (併せて、古いエクスポートを削除します)
 
    このシェルはタスクスケジューラーによって毎日 AM 2:00 に起動されます。
 
 
    STEP1: 仮想マシンをエクスポート
    STEP2: 古いエクスポートを削除
###>
 
 
 
<### 
    【STEP 1】
    仮想マシンを下記パスにエクスポートする
        E:\Daily_ExportedVM\<日付>\
###>
 
### 日付の取得
$NowDate = Get-Date -Format "yyyyMMdd_HHmmss"

### 削除するVMの古さを指定  
### 3日 -> -4320だと3日前のが残っちゃうので、4300 とかちょっと減らしておくのがいいかも。
$DeleteTime = "-6160"   

### エクスポート先のパスを指定
$ExportPath = "D:\backup\"

### エクスポート対象の仮想マシンの指定
$letterArray = "CentOS7-bind","CentOS7-vm","Rocky9-gw","Rocky9-http","Rocky9-SGE"

$TragetVM01 = "CentOS7-bind"
$TragetVM02 = "CentOS7-gw"
$TragetVM03 = "CentOS7-vm"

### Export
foreach ($TragetVM01 in $letterArray)
{
  ### Exportの成功 or 失敗の判断を STEP2(古いフォルダの削除)でするための変数($CheckCode)を定義
  ### 最初に0(=成功)を代入しておく。(失敗を検知したら 1 が代入される)
  $CheckCode = 0

  ### コマンドエラー時に Try-Catch の Catch 部分が実行されるように、デフォルトパラメータを Stopに変更
  $ErrorActionPreference = "stop"
 
  Try {
    ### 仮想マシンのエクスポートを実行
    Export-VM -Name $TragetVM01 -Path $ExportPath\$TragetVM01\$NowDate -ErrorVariable ExportError01 |
    Out-Null   ### Out-Null することで Export-VM が終了するのを待つ。
  }Catch{ 
    ### Export-VM がエラーになったら、エラー内容をファイルに出力して、$CheckCode に 1を代入
    ### エラーを このファイルに出力→ $ExportPath\ExportErrorCode-$TragetVM01-$NowDate.txt 
    echo $ExportError01 | 
    Out-File $ExportPath\$TragetVM01\$NowDate.txt
 
    ### エラーの場合は変数 'CheckCode'に 1 を代入(0以外の代入でSTEP2の際に中止ルーチンに移行)
    $CheckCode = 1
  }
  Out-Null

  ### Export-VM が例外処理で停止していなければ($CheckCode = 0)、古いフォルダの削除実施
  if ( $CheckCode -eq 0 ) {
    ### 対象フォルダ配下のリストを取得
    ### 作成されてから $DeleteTime の値を超過したフォルダ・ファイルを選択/抽出
    ### 対象を絶対パスに変換し、削除
    Get-ChildItem $ExportPath\$TragetVM01 |
    Where-Object {
    $_.CreationTime -lt (Get-Date).AddMinutes($DeleteTime)
    } |
    foreach {
        Remove-Item -Recurse -Force $_.FullName
    }
  }
}
  • バックアップについて.1705668467.txt.gz
  • 最終更新: 2024/01/19 12:47
  • by suikou