👇の記事の2番、SQLサーバのDBのバックアップ
前回の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のバックアップは書もがなんかめんどくさかった。記号入りの複雑なパスワードにしてたからうまいこといかなくて詰まってしまった・・・