**文書の過去の版を表示しています。**
バックアップについて
シーケンスデータ
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/* .
crontab一覧
$ 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
Hyper-V
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のエクスポートは実行できない)。ユーザーがログインしていなくても実行にもチェック。
www
研究室の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 でアクセスできる。
www さくらサーバでのバックアップ
さくらの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
m768のwwwバックアップ
m32s上で毎日3:11にバックアップ
$ more /etc/crontab 11 3 * * * root rsync -a --delete m768:/etc m768:/var/www/html /data/backup/m768-www/
共有フォルダ(/m2 on m32s)
m32s上のcrontabで下記のように毎日1時ごろバックアップ。
13 1 * * * root rsync -a --delete /m2/ /data/backup/suikou/
共有フォルダ(/suikou/files/synology)
m32s上で/data/backup以下にrsyncでバックアップしている。
DELL T1700上で、吉武のu-tokyo OneDriveアカウントと\\synology.s\sharedの同期をFreeFileSyncを使って1分毎に行っている。
また、synology上で、1日1回バックアップを行い、30日分のバックアップを保持するように設定している。
m32s:/m2フォルダ
m32rでバックアップ
m256yへバックアップ
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
Hyper-Vバックアップスクリプト
<### このスクリプトについて: 仮想マシンをエクスポートする処理を行います。 (併せて、古いエクスポートを削除します) このシェルはタスクスケジューラーによって毎日 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 } } }