DBのバックアップ MySQL&Win IIS FTP&cron(めんどくさ方式)

👇の記事の2番、SQLサーバのDBのバックアップ

バックアップの検討 – DESPINA.WORK

前回のWebサーバのコンテンツバックアップではWindows側でファイルを持ってきていた(Windowsがgetする方式)。

前回記事:バックアップの設定 FTP&cron&タスクスケジューラ – DESPINA.WORK

今回はLinux側からWindowsのFTPサーバへputする方式。理由はSQLサーバにFTPサーバとか入れてないから。(前回はWebサーバだったので管理用にvsftpd入れてた)

1.MySQLのバックアップを吐き出す

ファイル名:sqlbk.sh

mysqldump -u ユーザ名 -p'パスワード' データベース名1 > データベース1.bak
mysqldump -u ユーザ名 -p'パスワード' データベース名2 > データベース2.bak
mysqldump -u ユーザ名 -p'パスワード' データベース名3 > データベース3.bak

※パスワードに記号がある場合はシングルクォーテーションで囲む必要がある。詰まった。あとこのやり方はパスワードがCLIに流れるので脆弱。

2.FTPサーバ(IIS)側の設定

適当にポチポチして設定する👇

参考サイト:開発・検証用のFTPサーバ(IIS)を構築 – NDW (nextdoorwith.info)

3.FTPクライアント側(Ubuntu)

ファイル名:ftp1.sh

ftp -n < /home/useraaa/ftp2

ファイル名:ftp2

open xx.xx.xx.xx
user ユーザ名 パス
prompt
passive
bin
lcd /home/useraaa/
mput *.bak
quit

※自分のubuntuではアクティブモードが初期となっていて、ログインはできるのに正常に転送できなかったのでpassiveモードをオン。ここでも詰まった。

3.cron

テキトウに2行設定する。

コマンド: crontab -e

20 4 * * * sh /home/useraaa/sqlbk.sh
22 4 * * * sh /home/useraaa/ftp1.sh
crontab -l
service cron start
service cron status

WindowsのIIS&FTPサーバ、Linux(FTPクライアント)の組み合わせはめんどくさそうと思ってたし、案の定めんどくさかった。WindowsのFWが分かりにく過ぎ。あとFTPのAcitive/Passiveモードどっちやねんってのもあるし、権限周りも。うまくいかないときに見直す箇所が多すぎる気がする。普通にパス通ってないとか凡ミスもありまくり妙に時間かかった。

あとmysqlのバックアップは書もがなんかめんどくさかった。記号入りの複雑なパスワードにしてたからうまいこといかなくて詰まってしまった・・・

投稿日:
カテゴリー: Tech.

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です