Linux
 Computer >> コンピューター >  >> スマートフォン >> Linux

自動化されたLinux/Unixバックアップを作成する方法

このガイドでは、Linux(およびほとんどの* nixオペレーティングシステム)で自動バックアップを作成するプロセスを段階的に説明します。

「時間のステッチは9を節約します」と古いことわざがあります。コンピュータの世界では、そのステッチをバックアップと呼びます。本番ITインフラストラクチャを実行する場合、サーバーとアプリケーションの稼働時間を可能な限り100%に近づけることが不可欠です。 ITインフラストラクチャを強固にする方法はいくつかありますが、障害を防ぐことは不可能です。そこで、計画Bを作成します。

サーバーは、ハードウェア、オペレーティングシステムとアプリケーション、およびデータの3つの大きな層で構成されています。ハードウェア障害が発生した場合、マシンを新しいものと交換するのはかなり簡単です。オペレーティングシステムとアプリケーションのインストールも比較的簡単です。置き換えるのが難しい部分は、アプリケーションが使用するデータと構成です。故障の場合、これは交換できない部品です。そのため、定期的にそのデータをバックアップします。緊急時に簡単に取り出せるようにバックアップします。

Linuxシステムで毎日自動バックアップを作成するためのスクリプトの作成について説明します。この演習では、Apache Webサーバーを実行するサーバー、MySQLデータベースサーバーを使用し、 / homeにディレクトリがあります。 バックアップが必要なデータを含むパーティション。また、前日のApacheアクセスログを別のバックアップディレクトリにバックアップします。まず、バックアップを配置するディレクトリを作成する必要があります。演習の一環として、 BACKUPというディレクトリを作成しました。 / optで パーティション。このディレクトリでバックアップを整理し、毎日バックアップが次のような形式のディレクトリに存在するようにします– / opt / BACKUP / YEAR / MONTH / DATE / 。したがって、2008年8月11日に、バックアップは / opt / BACKUP / 2008/08/11 /に配置されます。 。これらのディレクトリを作成しましょう。次の一連のコマンドをルートとして実行します ユーザー。

mkdir -p / opt / backup / DATA / 2008
cd / opt / backup / DATA / 2008
mkdir 01 02 03 04 05 06 07 08 09 10 11 12
cd / opt / backup / DATA /
cp -r 2008 2009
cd / opt / backup /
cp-rデータログ

この最後のコマンドを発行する前に、以下の注を参照してください。

chown -R calvin.calvin / opt / backup

これで、2セットのバックアップディレクトリができました。1つはデータ用、もう1つはログファイル用です。バックアップディレクトリが作成されたら、スクリプトの作成を開始する準備が整いました。 注: ユーザーcalvinを使用しています この記事全体を通して。 calvinを交換してください 自分のユーザー名で。


###################################### ###############
#コードはここから始まります
####################### ##############################

#!/ bin / bash

#サーバーデータバックアップV1.0

#########################
#バックアップ構成
############## ###########

#月、日付、日を設定
YEAR =`date +”%Y”`#2008
MONTH =`date +”%m”`#11
DAY =`date + ”%d” `#14
YESTERDAY =` date –date =” yesterday” +%Y-%m-%d`#2008-11-13
YESTERDAY_DATE =`date –date =yesterday + %d`#13
YESTERDAY_MONTH =`date –date =yesterday +%m`#11
YESTERDAY_YEAR =` date –date =yesterday +%Y`#2008
TODAY =`date + %Y-%m-%d`#2008-11-14
TODAY_DATE =`date +%d`#14

#バックアップ先のディレクトリ

DATA_BACKUP_PARENT_DIR =/ opt / backup / DATA / #<-これをデータバックアップディレクトリに変更します
LOG_BACKUP_PARENT_DIR =/ opt / backup / LOG / #<-これをログバックアップディレクトリに変更します

#Apacheドキュメントルートディレクトリ
APACHE_DOCROOT =/ var / www / html /

#MySQLデータベース構成
DB_IP =” localhost” #<-これをデータベースサーバーのIPに変更します
DB_USER =” calvin” #<-これをデータベースのユーザー名に変更します
DB_PASS =” calvin_password” #<-これをデータベースパスワードに変更します
DB_NAME =” clientlist” #<-これをデータベース名に変更します

#Apache Log Dir
APACHE_LOG_DIR =” / var / log / httpd /” #<-これをログのパスデータに変更します

#アプリケーションファイルのディレクトリ
APP_FILES =” / home / calvin / application_files /” #<-これをデータディレクトリのパスに変更します

#Config Dir
CONFIG_DIR =” / etc /” #<-これをパスデータディレクトリに変更します

#メールレポートアドレス
EMAIL_ID =” you@youremailid.com” #<-これを自分のメールIDに変更します

#################################################### ###
#データバックアップ
###################################### #################

#バックアップディレクトリを作成して移動します
cd $ DATA_BACKUP_PARENT_DIR / $ YEAR / $ MONTH
mkdir $ DAY
cd $ DAY

#データベースのバックアップ
mysqldump -h $ {DB_IP} -u $ {DB_USER} -p $ {DB_PASS} $ {DB_NAME}> $ {DB_NAME} .db
tar -zcvf $ {DB_NAME} .tar .gz $ {DB_NAME} .db
rm -f $ {DB_NAME} .db

#/ etc backup
tar -zcf etc.tar.gz / etc

#アプリケーションのバックアップ
tar -zcf Apache_Doc_Root.tar.gz $ {APACHE_DOCROOT}
tar -zcf App_Files.tar.gz $ {APP_FILES}

#################################################### ###
#ログのバックアップ
#################################### #################

#バックアップディレクトリを作成して移動します
cd $ LOG_BACKUP_PARENT_DIR / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH
mkdir $ YESTERDAY_DATE
cd $ YESTERDAY_DATE

#HTTPDログバックアップ
for i in $ {APACHE_LOG_DIR}/access_log.${YESTERDAY} *; cp$iを実行します。;完了
foriinaccess_log。${YESTERDAY}*; gzip$iを実行します。完了

#################################################### ###
#メール通知を送信する
################################## ###################

#メール通知
du -shc $ DATA_BACKUP_PARENT_DIR / $ YEAR / $ MONTH / $ DAY / * | mail -s“ Backup for $ {HOSTNAME} ::DATA done :)” $ {EMAIL_ID}
du -shc $ LOG_BACKUP_PARENT_DIR / $ YESTERDAY_YEAR / $ YESTERDAY_MONTH / $ YESTERDAY_DATE / * | mail -s“ Backup for $ {HOSTNAME} ::LOG done :)” $ {EMAIL_ID}

#################################################### ###
#コードはここで終了します
################################### ##################

このスクリプトを/home/calvin/scripts/backup.shなどのディレクトリに保存します。ファイルに実行可能権限を付与します:

chmod + x /home/calvin/scripts/backup.sh

今、あなたは行ってもいいです。コマンドラインからスクリプトを実行します:

/home/calvin/scripts/backup.sh

オプションで、このスクリプトをcronジョブとして追加して、選択した時間に毎日実行されるようにすることもできます。このスクリプトを毎日午前4時に実行する場合は、次のようにします。

crontab -e

開いたファイルに新しい行を作成し、以下を追加します。

0 4 * * * /home/calvin/scripts/backup.sh> / dev / null

どうぞ。これで、サーバーはデータ、データベース、構成ファイル、アプリケーションファイル、およびログファイルを / opt / backupにバックアップします。 毎日午前4時–完全に自動化されたLinuxバックアップ!次の素晴らしいステップは、それらを暗号化することです:)


  1. Linuxで簡単なシェルスクリプトを作成する方法

    シェルスクリプトの作成は、Linuxユーザーが指先で習得する必要のある最も重要なスキルの1つです。シェルスクリプトは、行ごとに実行するのが面倒な反復タスクを自動化する上で大きな役割を果たします。 このチュートリアルでは、すべてのLinuxユーザーが持つべき基本的なシェルスクリプト操作のいくつかに焦点を当てます。 1。簡単なシェルスクリプトを作成する シェルスクリプトは、 ASCIIで構成されるファイルです。 文章。まず、簡単なシェルスクリプトを作成します。これを行うには、テキストエディタを使用します。コマンドラインとGUIベースの両方で、かなりの数のテキストエディタがあります。このガイドで

  2. Linux で起動可能な Windows 10 USB を作成する方法

    Linux への Windows 10 オペレーティング システムのインストールは、複雑である必要はありません。実際、複雑さを避けたい場合は、起動可能な Windows 10 USB が必要です。この記事では、起動可能な Windows 10 USB を作成する正確なプロセスと、それを行う方法について説明します。始めましょう。 Linux で起動可能な Windows 10 USB を作成する 一般に、これには 2 つの大きな方法があります。最初の方法では、UEFI 互換のブータブル ディスクを作成できます。マウント プロセスを開始する前であっても、最初に必要なのは Windows ISO