WinSCP を使って Win から Linux サーバのバックアップ

[`evernote` not found]
Bookmark this on Hatena Bookmark
Share on Facebook
LINEで送る

前提:

  • Linux サーバを多重化したり RAID を組む予算がないために,シングル構成をとらざるを得ない.
  • Win マシン上には大事なデータがあるので多重化している.
  • Linux サーバには,SSH 公開鍵を使った入力レスの SSH セッションが疎通.
  • Win マシン上には WinSCP 導入済.

準備1 Linux サーバ

バックアップしたいパスを決定し,アーカイブを自動化.
例)cron 利用

# crontab -l
0 10 * * * rm /bkup/var.cache.bind.zip;zip -P `cat ZIPPWDFILE` -rq /bkup/var.cache.bind.zip /var/cache/bind
0 40 * * * mysqldump -u MYSQLUSER -p`cat MYSQLPWDFILE` --opt DBNAME --net_buffer_length=8000 | gzip > /bkup/mysql.sql.gz

準備2 Winマシン

  • WinSCP で動作させるスクリプトの作成.
    例)ファイル名「backup_script」とする.

    open PAMUSER@host.domain -privatekey="c:\PATH\.ssh\id_rsa.ppk"
    cd /bkup
    lcd c:\STORAGEPATH
    get var.cache.bind.zip mysql.sql.gz .\
    exit
    
  • WinSCP を呼ぶスクリプトの作成.
    例)ファイル名「backup.bat」とする.

    c:\PATH\winscp437\winscp.com /script=c:\PATH\backup_script
    

実施

  • backup.bat を実行する.

追記(Feb 13 2013)
info-zip の場合, –f オプションで差分だけ上書きできるよ!(新規ファイルの追加はなし)
更新(上書き+新規追加)したい時は,–u オプションでいいよ!
消えたファイルはアーカイブからも消したい時は,–FS オプションでいいよ!
–x オプションで除外できるよ!
除外リストでワイルドカードを使う時は,\ でエスケープしないといけないよ!