1. Back up the web folder
1. Back up the /home/users/public_html directory
2. Modify the crontab to run at 3:22 on the first day of every week
Copy code The code is as follows:
22 3 * * 0 root run-parts /etc/cron.weekly
3. Copy the script to the /etc/cron.weekly directory
4. Modify permissions
Copy the code. The code is as follows:
chmod 0755 /etc/cron.weekly/webbackup.sh
5. The script is as follows
Copy code The code is as follows:
#!/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 , note that the filename sentence is not a single quote, it is above the tab key
7. For the public_html directory of the user to be backed up, fill in the user into users
2. Daily backup of mysql database
1. For security reasons, create a new user backup, use a strong password (it can be automatically generated), and the global permissions are select, lock tables
2. Start execution at 3:00 every day, modify crontab
3 , copy the script to /etc/cron.daily
4, modify permissions
5, script content
Copy code The code is as follows:
#!/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. Same as the previous item 6
7. Fill in datas
The above is the detailed content of How to write a script for Vps to automatically back up web and mysql databases under Linux. For more information, please follow other related articles on the PHP Chinese website!