Blog のバックアップデータを定期的にローカル HDD に scp
で保存したいと思った。
こういうのは cron
で行うのが普通だが Windows だと ***.bat
ファイルを書いてタスクスケジューラに登録するというのが面倒くさい。
ということで Windows 10 上で駆動する Linux 環境である WSL を導入した。
インストール
WSL2(Windows Subsystem for Linux)導入手順の通りやったらできた。 作業途中で WslRegisterDistribution failed with error: 0x800701bc というエラーが表示されたので、こちらはググって Linux カーネルの更新プログラムをインストールして解決。 Linux ディストリビューションは記事と同様に私が慣れている Ubuntu 20.04 LTS を選択。
cron
起動時に cron が起動していないので WSL2 で cron を有効にして OpenSSH server を走らせるを参考に Windows 起動時にバッチファイルをキックして cron を起動するように設定。
sudo visudo
で慣れない nano が起動して操作が分からなくて手間取ってしまった……。
今回は scp
でデータバックアップを取得するという想定なので公開鍵認証を設定しておく。
このあたりは SSH公開鍵認証で接続するまでを参照した。
例えば d ドライブの backup
ディレクトリにバックアップファイルをコピーする処理は以下となる:
scp (ホスト名):(バックアップディレクトリ)/* /mnt/d/backup
と思ったが最新のものが欲しいだけなので rsync
でいいだろうと思った。
毎回 scp
してしまうとオーバーヘッドがひどい。
rsync -avh (ホスト名):(バックアップディレクトリ) /mnt/d/backup/