linux下Vps自動バックアップwebとmysqlデータベースのスクリプト

2242 ワード

Vpsで何事も自分で気を使って、バックアップも.Linodeのようなバックアップサービスは有料で、1ヶ月で5ドルです.この5ドルを使うより、自分で衣食を豊かにしたほうがいい.サービスにDropboxをインストールし、毎日4:00-6:00に同期サービスを開始するように設定します.前に2つのスクリプトを実行し、Webフォルダとmysqlデータベースを自動的にバックアップします.
両方のスクリプトは、/root/dropbox/backupディレクトリにファイルをバックアップし、10日前のバックアップを自動的に削除します.Webバックアップは週に1回、30日前のバックアップを削除します.
一、WEBフォルダのバックアップ
1、バックアップ/home/users/public_htmlディレクトリ
2、crontabを毎週第一日3:22時に運行するように修正する
 
  
22 3 * * 0 root run-parts /etc/cron.weekly

3、スクリプトを/etc/cronにコピーする.weeklyディレクトリ
4、権限の変更
 
  
chmod 0755 /etc/cron.weekly/webbackup.sh

5、シナリオは以下の通り
 
  
#!/bin/sh
filename=`date +%Y%m%d`
backup_dir="/root/Dropbox/backup/web"
#delete all files 10 days ago
find $backup_dir -mtime +30 -name "*" -exec rm -rf {} \;
#each user you want backup
users="baidu sina"
for user in ${users}; do
tar zcvf $backup_dir/$user$filename.tar.gz /home/$user/public_html
done

6、filenameの文は引用符ではなくtabキーの上にあることに注意してください.
7、バックアップするユーザーのpublic_htmlディレクトリは、そのユーザーをusersに記入します.
二、Mysqlデータベース毎日バックアップ
1、安全のために、ユーザーbackupを新規作成し、強いパスワード(自動生成可)、グローバル権限はselect、lock tables
2、毎日3:00から実行し、crontabを修正する
3、スクリプトを/etc/cronにコピーする.daily
4、権限の変更
5、シナリオの内容
 
  
#!/bin/sh
dbuser="backup"
dbpassword="youpassword"
datas="db1 db2 db3"
filename=`date +%Y%m%d`
bin_dir="/usr/local/mysql/bin"
backup_dir="/root/Dropbox/backup/mysql"
#delete all files 10 days ago
find $backup_dir -mtime +10 -name "*" -exec rm -rf {} \;
#Do each database backup
for data in ${datas}; do
$bin_dir/mysqldump --opt -u$dbuser -p$dbpassword $data | gzip > $backup_dir/$data$filename.sql.gz
done

6、前の第6条と同じ
7、バックアップするデータベースにdatasを記入する
三、感じ
いずれも米国にあるため、dropboxへのバックアップ速度が速く、10 Mのファイルがdropboxにバックアップされ、dropboxサービスを開始し、すぐにdropboxをリフレッシュするサイトから見ることができます.
流量がきつい場合はdropboxを毎週運転したり、5日ごとに運転したりするなどの設定も可能です.バックアップサイクルを設定するか、組み合わせて使用する必要があります.