Windows10 - WSLのバックアップファイルを毎日自動でGoogle Driveに保存する
バックアップの作成方法
参考
作成方法概要
- 基本的に、上記参考サイトのやり方でやります。
- 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/wsltmp_dir=backup_wsl_tmporigin_dir=/target_today_dir=$target_dir/$todaytarget_today_tarfile=$target_today_dir/backup.tar.bz2exclude_list=exclude_list.txtsave_files_number=5
echo '[Create WSL backup files]'echo 'creating backup file...'echo '--------------------------'mkdir -p $target_today_dirtar -cvpjf $target_today_tarfile -X $exclude_list $origin_direcho '--------------------------'
echo 'creating backup directories...'rm -rf $tmp_dirmkdir -p $tmp_dirdir_str="${target_dir}/*/"count=1for dirname in $(ls -td $dir_str); do mv $dirname $tmp_dir count=$((++count)) if [ $count -gt $save_files_number ]; then break fidonerm -rf $target_dirmv $tmp_dir $target_direcho '[SUCCESS] Created backup files!!'https://github.com/edo1z/backup_wsl — github.com
CRONで自動化(毎日実行)
参考
やったこと
- 上記参考サイトのように、PC起動時にUbuntuを起動し、Ubunutu起動時にcronを起動するようにしました。
- 毎日18時に
backup_wsl.shを実行するようにしました。
#!/bin/sh0 18 * * * root bash /backup_wsl/backup_wsl.sh > /dev/null 2>&1Google Driveに自動で同期
- 下記公式ツール『バックアップと同期』を使ったらできました。
- Google ドライブをダウンロード
