PukiWikiでバックアップのスケジュール化
2019/01/31
PukiWikiでバックアップを取りたかった。調べたらディレクトリごと保存すればいいみたいだけど手動で対応するのは面倒くさい。自動で週に1回ディレクトリをzip化したものをメールで送ってほしかった。以下に対応方法をメモ。
バックアップ用のプログラムを作成
以下を記述したファイルを適当なディレクトリにアップロードする。今回は「/var/www/html/hoge/cron.php」と想定する。
<?php #制限時間なし set_time_limit(0); #zipファイル名 $zip_name = "backup.zip"; #zipファイルを保存するディレクトリ $save_dir = "/var/www/html/hoge"; #圧縮したいディレクトリ $zip_dir = "/var/www/html/fuga"; #コマンドの実行 $command = "zip -r " . $save_dir . $zip_name . " " . $zip_dir; shell_exec($command); #エンコード設定 mb_language("ja"); mb_internal_encoding("UTF-8"); #メアドとタイトル、本文設定 $to = "hoge@gmail.com"; $from = "fuga@gmail.com"; $subject = "送信タイトル"; $text = "送信本文"; #ヘッダー設定 $header = "Content-Type: multipart/mixed;boundary=\"__BOUNDARY__\"\n"; $header .= "Return-Path: " . $to . " \n"; $header .= "From: " . $from ." \n"; $header .= "Sender: " . $from ." \n"; $header .= "Reply-To: " . $to . " \n"; #本文設定 $body = "--__BOUNDARY__\n"; $body .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n\n"; $body .= $text . "\n"; $body .= "--__BOUNDARY__\n"; #添付ファイル設定 $body .= "Content-Type: application/octet-stream; name=\"{$zip_name}\"\n"; $body .= "Content-Disposition: attachment; filename=\"{$zip_name}\"\n"; $body .= "Content-Transfer-Encoding: base64\n"; $body .= "\n"; $body .= chunk_split(base64_encode(file_get_contents($save_dir . $zip_name))); $body .= "--__BOUNDARY__\n"; #送信 mb_send_mail($to, $subject, $body, $header); #作成したファイルの削除 unlink($save_dir . $zip_name);
zipファイル等の設定と送受信メアドあたりは適宜変更する。
Cronで自動実行させる
vi /etc/crontab #毎週月曜日の03:00に実行 0 3 * * 1 root /usr/bin/php /var/www/html/hoge/cron.php
関連記事
-
-
CSVファイルを使って郵便番号から住所を抽出する
■ソース <? error_reporting(E_ALL & ~ ...
-
-
$_SERVER['PHP_SELF']に脆弱性あり
formのaction属性とかページングのリンクとかで、 <form ac ...
-
-
PHPで簡単にCSVファイルの生成
簡単にデータ並べるだけのCSVファイル生成。 file_put_contensで ...
-
-
PHPで複数の画像やテキストファイルをzipファイルとしてダウンロードさせる
PHPで画像ファイルやテキストファイルをzip圧縮して、ダウンロードさせたかった ...
-
-
PHPの配列をファイルに保存してPHPやJSで呼び出す
PHPの配列をファイルとして保存し、別のページからPHPやJavaScriptで ...
-
-
PHPでベーシック認証をかける方法
PHPでBasic認証をかけているソースを拝見する機会があり、衝撃だったのでメモ ...
-
-
PHPの文字化け対策
PHPファイルもDBも全部UTF-8で出来たらいいけど、 そうもいかない場合が多 ...
-
-
PHPとStripeでクレジットカード決済処理
PHPとStripeの組み合わせでWebサービスにクレジットカード決済処理を導入 ...
-
-
jQueryとprototypeの共存
prototypeを先に使っているがjQueryに移行してきている ページで、尚 ...
-
-
PHPでyoutubeから更新分の情報を取得する(スクレイピング)
「○○のサイトから自動更新分を持ってきて 自サイトに反映させらへん?」と以前に聞 ...