レンタルサーバーでバックアップしたファイルを自動DLするIT系おじさんのチラシの裏2018年10月~プロフィールAUTHOR:とっちら書きたくなったときに書きたいことを書く雑記ブログ。IT系のネタが多いかも知れません。11:57とっちら1年前の記事に助けられました。14:28とっちらこの記事のお陰で60分録画できるようになりました。16:01とっちらライセンスを明示して貰えると使いやすいのですが。14:37ご回答いただきどうもありがとうございます。21:56とっちら超初心者です。)前回の記事「PHPでファイルとDB(PostgreSQL)をバックアップ」でレンタルサーバー上のファイルや、PostgreSQLデータベースをバックアップしてZIPファイルにするところまで解説しました。今回はそのファイルをローカルへダウンロードする処理も自動化しよう、という話です。FTP接続でダウンロードするバッチ処理てっとり早いのはFTP接続ですね。標準でFTPコマンドが使えますし、予め実行するコマンドを記述したテキストファイルを用意し、-sオプションで指定すればバッチ処理も可能です。backup.zipe1.valueserver.jpのところは接続先のホストを。ユーザー名とパスワードにはFTPのログイン情報を記述します。オプションでcommand.txtを指定してあげるだけで忠実に実行してくれます。*.zipとワイルドカード指定することもできるので、タスクスケジューラーに組み込んで毎日定期的にレンタルサーバー上からバックアップファイルをDLしてくることも可能です。普通のWebページですらSSL対応が当たり前となった今日この頃、暗号化も何もされていないFTPでバックアップファイルをDLするのはちょっと怖いですよね。データベースとなるとユーザーのログイン情報等を格納していることもあるでしょうし、それがネットワーク上を平文で流れるかと思うと恐ろしくなります。当たり前ですが、DBのバックアップはpublic_html等の外から見えるディレクトリ下に置かないように注意が必要です。外からアクセスされることはありません。SFTP接続でダウンロードするバッチ処理レンタルサーバー側がSSH接続を許しているのなら、psftp.exeを使うのが簡単でしょう。オープンソースで提供されているSSHクライアントPuTTYに含まれているコマンドなのですが、その利便性から下記のページにて、psftp.exe単体のダウンロードも可能となっています。filesの下にあるpsftp.exeをダウンロードすればすぐ使えます。command.txt前述したftpコマンドと同じくバッチ処理はできるのですが、微妙に使い方が異なります。psftpの場合はコマンドファイル内にログイン情報を書けないため、オプションで直接、ユーザー名/ホスト名/パスワードを指定することになります。接続後に実行するコマンドはcommand.txtに書けばOKです。backup.zipログイン情報は書かないのでシンプルにディレクトリ移動とgetコマンドだけですね。追記してサーバーのスペースを圧迫しないようにするのも良いと思います。(鍵をキャッシュするか否か)を聞かれます。入力しておけば二度目からは何も聞かれなくなりますが、サーバーのタスクスケジューラーで使うにはちょっと具合が悪いですし、キャッシュしたくない場合もあるでしょう。入力され、バッチ処理が中断しなくなります。command.txtpsftpに限らず、対話型のコマンドではよく使う手法ですね。SERVERのコントロールパネルへログインし、SSH登録するまでを自動化しました。次に「PHPでファイルとDB(PostgreSQL)をバックアップ」でレンタルサーバー上のファイルとDBのバックアップも自動化。PC側でFTPコマンド、あるいはpsftpコマンドを使うことで、レンタルサーバー上にあるバックアップファイルをダウンロードする処理も自動化できました。ファイル名に日付(YYYYMMDD等)を付けて保存しておけば、ローカルのHDDが許す限り、過去何ヶ月分ものバックアップを保存しておけますし、これだけでらくちんな全自動バックアップシステムが構築できますね。ハードウェアのトラブルによるファイル消失というのはそう滅多にあるものではありませんが、ユーザー側の操作ミスでサーバー上のファイルを消してしまうことが(少なくともぼくの場合は)けっこうあり、やっちまった!と思った後にバックアップがあってホッとしたケースは過去に数え切れないほどあります。最初のうちは気がついたときに手動バックアップしておけばいいや~で済むかも知れませんが、そうして何度も手動操作をするよりも、最初の1回だけ自動化の仕組みを作る手間をかけたほうが、後々楽が出来るかなと思います。うちの場合はこれに加えてApacheのログをDLして、ローカルDBへ格納して自前のアクセス解析レポートを生成する処理や、そのログから不審なアクセス(URLにSQLインジェクションを何度も試すアクセス等)を抽出し、そのIPアドレスを.htaccessの接続拒否リストに追記してアップロードする処理、更にそれらの実行結果をメールする処理などを全て自動化しています。根がモノグサなのです。1本で済ませたいなぁという思いもあり、うちではPHPでSFTP接続しています。これについてはコーディング云々よりも、PHPでSSHを使える準備を整えるほうが面倒くさいので、そのへんも含めて別記事にまとめたいと思います。関連記事コマンドラインでWebサイトのスクリーンショットを撮る簡単な方法Chromeのヘッドレスモードってご存知でしょうか。Chromeのv59、Windows版ではv60から搭載されている機能なのですが、簡単に言うとChromeをコマンドラインで操作する機能です。「ブログを400記事投稿したらアクセスが増えるかどうか検証してみた結果」から実に1年半も経ってしまいましたが、ようやくこの記事で500記事目になるので、現在までの結果をまとめておこうと思います。現在、fc2ドメインで取得したドメイン名とIPアドレスの紐づけがされない、いわゆるDNS障害が発生しています。本業のほうでは業務系(顧客管理とか請求管理とか事務処理系の色々)のWebシステムを開発しており、それらは社内ネットワークで完結するモノなので、自前でWebサーバーを構築することが多いです。コメント投稿直後ならコメントの編集/削除が可能です。※24時間経過するか、新しく投稿した場合は古い投稿の編集や削除は出来ません。※ブラウザでCookieが受け入れられない場合はこの機能は使えません。非公開にチェックを入れたコメントは管理人のみ閲覧できます。コメント投稿のガイドライン誰もが閲覧できるコメント欄ですので個人が特定できる情報等は書き込まないようにしましょう。他人のHPやブログの文章を掲載する場合は著作権法第32条「引用」の条件を満たすかご確認ください。誹謗中傷にあたる表現などは場合によっては法的な責任を問われる可能性があるためご注意ください。とっちらか~るTOP。