アーカイブをメールに送信するFreeBSD構成の最も簡単なバックアップ

小規模なローカルエリアネットワークの場合、NASはFreeBSDの下にインストールされました。もちろん、システムクラッシュが発生した場合の構成のバックアップという問題が最終的に発生しました。 特に回復速度はまだ重要ではないため、面倒なことは一切したくありませんでした。 したがって、毎晩アーカイブに必要なファイルを追加して、自分で最も簡単なスクリプトを作成することにしました。 外部ストレージとして、メールサーバーが選択されました。 このスクリプトをあなたと共有したいと思います。



すぐに予約します。 この方法が機能しない人:

この投稿は、私と同じ新人を対象としています。 彼はすべてを可能な限り詳細に説明しました。



そのため、FreeBSDにはネットワークアクセスサーバーがあります。これは、いくつかのサイトと1つのフォーラムのWebサーバーとしても機能します。

私の場合、MySQLデータベース、/ etc、/ usr / local / etcフォルダーの内容全体(各構成へのパスを個別に書き換えないように)、カーネル構成、cron、およびサイトのあるディレクトリがバックアップされます。



最も難しいものから始めましょう。 標準のmysqldumpユーティリティを使用してMySQLデータベースをダンプします。 特に彼女のために、私たちの考えに十分な最小限の特権を持つ新しいsql-user「バックアップ」を作成します。 以下を設定します:SELECT、FILE、SHOW DATABASES、LOCK TABLES、SHOW VIEW。 さまざまなオプションがあるため、ユーザーを作成するプロセスについては説明しませんが、コメント内のすべての質問に答えようとするとします。



データベースは、次のコマンドを使用して/var/tmp/all.sqlファイルにダンプされます。



/usr/local/bin/mysqldump --opt -Aau backup -p__BACKUP > /var/tmp/all.sql
      
      





原則として、すべてが初めてうまくいくはずです。 さらに簡単です。

はい、熱心なLinuxユーザーは気にしませんが、信頼性を高めるために結果のアーカイブをパスワードで保護したいので、RARをアーカイバとして選択しましたが、tarはこれを行う方法を知りません。

RARのセットアップは簡単です。



 cd /usr/ports/archivers/rar make install clean
      
      





インストールが成功したら、マニュアルを読み、必要なキーを選択し、スペースを介してファイルとフォルダーへのパスを指定し、操作性を確認します。

私の場合、チーム



 /usr/local/bin/rar a -ow -inul -p__ /var/tmp/server_backup.rar /var/tmp/all.sql /usr/src/sys/i386/conf/kernel /var/cron/tabs /etc /usr/local/etc /usr/local/www/data
      
      





リストされたすべてのファイルとディレクトリを含むアーカイブ/var/tmp/server_backup.rarを作成しました。 最後にスラッシュを付けてディレクトリへのパスを指定すると、サブディレクトリはアーカイブされず、指定されたフォルダのルートからのファイルのみがアーカイブされることに注意してください!



次に、結果のアーカイブをメーラーが理解できる形式にエンコードし、「サーバーバックアップ」という件名でメールに送信します



 /usr/bin/uuencode '/var/tmp/server_backup.rar' server_backup.rar | mail -s 'server backup' '@gmail.com'
      
      





当然、電子メールへの送信は、FTPにバックアップをマージするか、どこでも利用可能に応じて置き換えられます:)

送信が成功したら、アーカイブを削除します



 rm /var/tmp/server_backup.rar rm /var/tmp/all.sql
      
      





最後に、スクリプトアセンブリ全体は次のようになります。



 #!/bin/sh /usr/local/bin/mysqldump --opt -Aau backup -p__BACKUP > /var/tmp/all.sql /usr/local/bin/rar a -ow -inul -p__ /var/tmp/server_backup.rar /var/tmp/all.sql /usr/src/sys/i386/conf/kernel /var/cron/tabs /etc /usr/local/etc /usr/local/www/data /usr/bin/uuencode '/var/tmp/server_backup.rar' server_backup.rar | mail -s 'server backup' '@gmail.com' rm /var/tmp/server_backup.rar rm /var/tmp/all.sql
      
      





/home/%username%/backup.sh(%username%はシステム内の名前)などの既知の方法で保存し、必要な権限を付与します



 chmod 750 /home/%username%/backup.sh
      
      





その後、スクリプトを実行して、動作することを確認できます。 問題が発生した場合、/ val / log / messagesおよび/ var / log / maillogのエントリはデバッグに適しています



スクリプト実行タスクをcronに追加します。 crontab -e



を実行し、 viを使用して次の行を入力します



 1 4 * * * /home/%username%/backup.sh
      
      





最後にEnterを押すことを忘れないでください(ファイルの最後に空行があるはずです)。

Viで編集モードに切り替えるには、 i



押します。 Esc



ファイルを保存して終了するには:wq





このようなレコードを使用すると、スクリプトは毎晩4時間1分に実行されます。 crontabのすべてのレコードを表示



 crontab -l
      
      





また、アーカイブ内のファイルとディレクトリの名前が暗号化されていないという事実にも注意を払いたいと思います! たとえば、WinRARでアーカイブを開くと、すべてのフォルダーとその内容を表示できます(ディレクトリ構造は保存されます)が、パスワードを入力せずにファイルを開くことはできません。



実際には、それだけです。 完璧に制限はないので、喜んですべての申し出、希望、特に批判に耳を傾けます。

幸運を祈ります。作成されたアーカイブがあなたにとって役に立たないようにしてください;)

dobryj.ru経由



All Articles