データバックアップ用の基本Bashスクリプト

こんにちは、habralyudi、バックアップの準備という日常的な作業を少し自動化する方法を説明します。



この場合、強力なプログラムやシステム全体を使用してデータをバックアップすることはありません。最も手頃な価格に制限します。 つまり-Bashスクリプト。







スクリプトは何を実行する必要がありますか?



Webプロジェクトのバックアップ、つまり:

-MySQLデータベースのバックアップコピーを作成します。

-ファイルをバックアップします。

-それを構造化する。



そして、ここにスクリプトがあります:



#!/bin/bash

PROJNAME= #

CHARSET= # (utf8)

DBNAME= #

DBFILENAME= #

ARFILENAME= #

HOST= # MySQL

USER= #

PASSWD= #

DATADIR= #

SRCFILES= #

PREFIX=`date +%F` #



#start backup

echo "[--------------------------------[`date +%F--%H-%M`]--------------------------------]"

echo "[----------][`date +%F--%H-%M`] Run the backup script..."

mkdir $DATADIR/$PREFIX 2> /dev/null

echo "[++--------][`date +%F--%H-%M`] Generate a database backup..."

#MySQL dump

mysqldump --user=$USER --host=$HOST --password=$PASSWD --default-character-set=$CHARSET $DBNAME > $DATADIR/$PREFIX/$DBFILENAME-`date +%F--%H-%M`.sql

if [[ $? -gt 0 ]];then

echo "[++--------][`date +%F--%H-%M`] Aborted. Generate database backup failed."

exit 1

fi

echo "[++++------][`date +%F--%H-%M`] Backup database [$DBNAME] - successfull."

echo "[++++++----][`date +%F--%H-%M`] Copy the source code project [$PROJNAME]..."

#Src dump

tar -czpf $DATADIR/$PREFIX/$ARFILENAME-`date +%F--%H-%M`.tar.gz $SRCFILES 2> /dev/null

if [[ $? -gt 0 ]];then

echo "[++++++----][`date +%F--%H-%M`] Aborted. Copying the source code failed."

exit 1

fi

echo "[++++++++--][`date +%F--%H-%M`] Copy the source code project [$PROJNAME] successfull."

echo "[+++++++++-][`date +%F--%H-%M`] Stat datadir space (USED): `du -h $DATADIR | tail -n1`"

echo "[+++++++++-][`date +%F--%H-%M`] Free HDD space: `df -h /home|tail -n1|awk '{print $4}'`"

echo "[++++++++++][`date +%F--%H-%M`] All operations completed successfully!"

exit 0






いくつかの方法で開始できます。



-簡単な起動:./backup.sh

-起動+ロギング:./backup.sh | tee backup.log

-また、cronにプッシュすることもできます:00 20 * * 7 root sh /home/bond/backup.sh | tee /home/bond/backup/backup.log

スクリプトが正常に完了すると、次のように表示されます。



bond@serv:~$ sudo sh backup.sh

[--------------------------------[2009-02-14--12-28]--------------------------------]

[----------][2009-02-14--12-28] Run the backup script...

[++--------][2009-02-14--12-28] Generate a database backup...

[++++------][2009-02-14--12-29] Backup database [images] - successfull.

[++++++----][2009-02-14--12-29] Copy the source code project [itmages]...

[++++++++--][2009-02-14--12-29] Copy the source code project [itmages] - successfull.

[+++++++++-][2009-02-14--12-29] Stat datadir space (USED): 1,3G /home/bond/backup

[+++++++++-][2009-02-14--12-29] Free HDD space: 49G

[++++++++++][2009-02-14--12-29] All operations completed successfully!

bond@serv:~$







その結果、バックアップは指定したディレクトリに追加され、バックアップは日付で指定されたディレクトリに追加されます。



PS 書いているときのヒントをありがとうopkdx。



All Articles