バックアップの作成方法
参考
作成方法概要
- 基本的に、上記参考サイトのやり方でやります。
- WSLのrootディレクトリ以下をごっそり圧縮して保管する方法です。
- /mnt/c等については圧縮対象から除外します。
- 保管場所は、/mnt/c内にして、それをgoogle driveに保存します。
- 1日1回実行して、最新5日分のバックアップファイルを保存します。
圧縮対象の除外
- 下記ファイルを作成して、圧縮時に指定します。
- 今回は、
/wsl_backup
内に、exclude_list.txt
として作成します。 - このファイルを
tar
コマンドの-X
オプションで指定することで、圧縮対象から除外できます。
/backup_wsl/exclude_list.txt
/mnt /dev /proc /tmp /sys /run /var/log
圧縮
下記のような形で圧縮します。
$ tar -cvpjf /mnt/c/backup/wsl/20191205/backup.tar.bz2 -X /backup_wsl/exclude_list.txt /
バックアップファイルの自動作成(shell)
- 今日の日付のディレクトリにバックアップファイルを作成
- 直近5日以外のディレクトリを削除
/backup_wsl
内に、backup_wsl.sh
として作成
#!/bin/bash today=$(date +%Y%m%d) target_dir=/mnt/c/backup/wsl tmp_dir=backup_wsl_tmp origin_dir=/ target_today_dir=$target_dir/$today target_today_tarfile=$target_today_dir/backup.tar.bz2 exclude_list=exclude_list.txt save_files_number=5 echo '[Create WSL backup files]' echo 'creating backup file...' echo '--------------------------' mkdir -p $target_today_dir tar -cvpjf $target_today_tarfile -X $exclude_list $origin_dir echo '--------------------------' echo 'creating backup directories...' rm -rf $tmp_dir mkdir -p $tmp_dir dir_str="${target_dir}/*/" count=1 for dirname in $(ls -td $dir_str); do mv $dirname $tmp_dir count=$((++count)) if [ $count -gt $save_files_number ]; then break fi done rm -rf $target_dir mv $tmp_dir $target_dir echo '[SUCCESS] Created backup files!!'
CRONで自動化(毎日実行)
参考
やったこと
- 上記参考サイトのように、PC起動時にUbuntuを起動し、Ubunutu起動時にcronを起動するようにしました。
- 毎日18時に
backup_wsl.sh
を実行するようにしました。
#!/bin/sh 0 18 * * * root bash /backup_wsl/backup_wsl.sh > /dev/null 2>&1
Google Driveに自動で同期
- 下記公式ツール『バックアップと同期』を使ったらできました。
- Google ドライブをダウンロード