1

私はシェル スクリプトを初めて使用し、自分の Web サイトのバックアップ スクリプトを作成する方法の例を探していますが、理解できるもの、または少なくとも何かを見つけることができません。

Synology Diskstation サーバーを使用して、(スケジューラーを介して) 自動的に自分の Web サイトのバックアップを取得したいと考えています。

私は現在、Mac の Automator と Transmit FTP プログラムを組み合わせてこれを行っていますが、これをコマンド ライン プロセスにするのが苦労しています。

これは私がスクリプトでやろうとしていることです:

1) ブラウザなしで URL を開きます (この URL は、後でダウンロードするサーバー上のデータベースの mysql ダンプを作成します)。URL の例はhttp://mywebsite.com/dump.phpです。

2) FTP を使用して、サーバーからすべてのファイルをダウンロードします。(現在、Transmit FTP はこれを同期機能として処理し、リモート ファイルの日付がローカル ファイルよりも新しいファイルのみをダウンロードします。また、リモート サーバーに存在しないローカル ファイルはすべて削除します)。

3) 手順 2 のファイルの圧縮アーカイブを作成し、website_CURRENT-DATE という名前を付けます。

4) ステップ 3 のアーカイブを特定のフォルダーに移動し、この特定のフォルダー内の 120 日より古いファイルを削除します。

現在、ステップ 1 の実行方法、またはステップ 2 の同期の方法がわかりません (wget を使用してサイト全体をダウンロードする方法はわかりますが、実行するたびにすべてをダウンロードするようです。変更されていません)。

手順 3 と 4 はおそらく検索で簡単に見つかりますが、手順 1 を通過できないため、まだ検索していません。

ありがとう!

また、参考までに、私の Web ホストはこれらのタイプのバックアップを行っていないため、自分で行うのが好きです。

4

1 に答える 1

0

それぞれの質問に順番に答えると、次のようになります。

  1. いくつかのオプションがありますが、最も一般的なのはまたは のwget http://mywebsite.com/dump.phpいずれかcurl http://mywebsite.com/dump.phpです。

  2. サーバーにsshアクセスできるので、たとえば.rsyncrsync -essh --delete --stats -zav username@mywebsite.com:/path/to/files/ /path/to/local/backup

  3. からスナップショットをrsync取得したら、圧縮された日付付きコピーを作成できます。cd /path/to/local/backup; tar cvf /path/to/archives/website-$(date +%Y-%m-%d).tgz *

  4. find /path/to/archives -mtime +120 -type f -exec rm -f '{}' \;120 日より古いすべてのバックアップを削除します。

于 2014-01-29T20:32:12.383 に答える