ホームページ  >  記事  >  運用・保守  >  シェルプログラミングによるWebサイトファイルやデータベースファイルの実用的なバックアップ

シェルプログラミングによるWebサイトファイルやデータベースファイルの実用的なバックアップ

齐天大圣
齐天大圣オリジナル
2020-09-20 09:36:051384ブラウズ

ファイル バックアップの重要性は明らかです。Web サイトのファイルであっても、日常生活の写真やビデオなどであっても、定期的にバックアップすることは良い習慣です。そうしないと、データが失われたときにデータを回復できないという絶望を経験することになります。筆者も何度か経験していますが、最も深刻だったのは個人ブログの7ヶ月以上のデータが全て消えてしまった時で、本当に涙が止まらないほどの感動でした。

今日は、サーバー側で Web サイトのディレクトリとデータベース ファイルをバックアップするスクリプトの作成方法を説明します。まず、いくつかの知識を追加する必要があります:

  • #tar コマンド、ファイル圧縮とパッケージ化

  • #find コマンド、ファイルの検索

  • bzip2、ファイル圧縮

スペースを節約するために、ディレクトリ ファイルを圧縮してパッケージ化することがよくあります。 bzip2 コマンドはファイルを圧縮できますが、ディレクトリは圧縮できません。tar コマンドを使用すると、ディレクトリを圧縮してパッケージ化できます。

データベース ファイルは別の SQL ファイルであるため、bzip2 コマンドを使用して圧縮できます。

mysqldump -u用户名 -p密码 --all-databases | bzip2 > 备份目录/文件名

Web サイトのファイルは、tar コマンドを使用して圧縮する必要があります。

tar -jcpf 备份目录/文件名  需备份的目录

バックアップは毎日実行していますが、保存したいのは過去 7 日間のバックアップ記録だけであり、7 日前のバックアップ データは自動的に削除されます。ここでは、find コマンドを使用して 7 日前のバックアップ ファイルを検索し、それを削除する必要があります。

find 备份目录 -mtime +7 -type f -exec rm -f {} \;

シェルスクリプトを正式に書き始めましょう。まず、バックアップ ディレクトリを定義する必要があります。バックアップ ディレクトリが存在しない場合は、最初にディレクトリを作成する必要があります。

WWW_DIR=/home/wwwroot
BAK_DIR=/root/bak

if [ ! -d $BAK_DIR ];then
    mkdir $BAK_DIR
fi

次のステップは、Web サイトのディレクトリとデータベース ファイルをバックアップすることです

tar -jcpf $BAK_DIR/www_$(date +%Y%m%d).tar.bz2 $WWW_DIR 2>/dev/null
mysqldump -uroot -p123456 --all-databases | bzip2 > $BAK_DIR/all_database_$(date +%Y%m%d).sql

最後に、7 日前のバックアップ データを削除するだけです

find $BAK_DIR -type f -mtime +7 -exec rm -f {} \;

完全なコードは以下に掲載されています:

#!/bin/bash
# 备份数据库文件及网站文件

WWW_DIR=/home/wwwroot
BAK_DIR=/root/bak

if [ ! -d $BAK_DIR ];then
    mkdir $BAK_DIR
fi

# 备份网站文件及数据库文件
tar -jcpf $BAK_DIR/www_$(date +%Y%m%d).tar.bz2 $WWW_DIR 2>/dev/null
mysqldump -uroot -pGuiyuan#520@1314 --all-databases | bzip2 > $BAK_DIR/all_database_$(date +%Y%m%d).sql 

# 删除7天前的备份数据
find $BAK_DIR -type f -mtime +7 -exec rm -f {} \;

最後に、皆さんにもバックアップする習慣を身につけていただきたいと思います。サーバー上の毎日のバックアップに加えて、データが確実に確実なものであることを確認するために、週に 1 回サーバーからローカル ディスクにデータをコピーすることもお勧めします。

以上がシェルプログラミングによるWebサイトファイルやデータベースファイルの実用的なバックアップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。