ファイル バックアップの重要性は明らかです。Web サイトのファイルであっても、日常生活の写真やビデオなどであっても、定期的にバックアップすることは良い習慣です。そうしないと、データが失われたときにデータを回復できないという絶望を経験することになります。筆者も何度か経験していますが、最も深刻だったのは個人ブログの7ヶ月以上のデータが全て消えてしまった時で、本当に涙が止まらないほどの感動でした。
今日は、サーバー側で Web サイトのディレクトリとデータベース ファイルをバックアップするスクリプトの作成方法を説明します。まず、いくつかの知識を追加する必要があります:
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 サイトの他の関連記事を参照してください。