Here is the script implementation process:
1. Automatically package the backup on the server to a Web directory (of course this web directory is inaccessible to other people), so that the script to download.
2. Download the backup package on the local server, unzip it and copy it into a dedicated backup directory.
3. When the above two steps are completed, we will remove the backup package on the server to avoid leakage.
Here's the script:
1. This is to filter out the latest backup on the server and package the latest backup to the Web directory:
Cat copy_bakfile.sh
The code is as follows |
Copy Code |
#!/bin/bash location= "/root/sqlbak/" Newfile= "/root/newfile" File= '/root/newfile ' web= "/var/www/vhosts/wwwroot/phpmyadmin" Rm-f ${file}/* #file =$ (Find $location-type f-mtime-1) file=$ (Find $location-type f-mmin-60) CP $file $newfile Sleep 3 Ls-l $newfile |awk ' {print $} ' |xargs tar-c $newfile/-czf $web/bak.tar.gz |
2. This is the download Backup package script (first connected to the server to perform copy_bakfile.sh to filter out the latest backup, and package to the Web directory, and the packaged bak.tar.gz download to the local)
Cat Down.exp
The code is as follows |
Copy Code |
#!/usr/bin/expect-f Set Timeout-1 Set passwd PASSWORD Spawn ssh-p18330 Root@124.248.xxx.xxx Expect { "Yes/no" {send "YESR"; Exp_continue} "Password:" {send "$PASSWDR"} } Expect "*#*" {send "Sh/root/soft_shell/copy_bakfile.shr"} Expect "*#*" {send "Exitr"} Spawn Axel-q Http://blog.slogra.com/bak.tar.gz-o/root/sqlbak/ Expect EOF |
3. This is the extract backup package script
Cat process.sh
code is as follows |
copy code |
#!/bin/ Bash pid= ' ps-c Axel--no-header|wc-l ' file= ' find/root/sqlbak/-name bak.tar.gz.st|wc-l ' list= '/root/sqlba K " newfile="/data/onlinesqlbak " date=" ' Date ' +%y-%m-%d%h:%m:%s ' "" if [[$pid-eq 0]] | | [[$file-eq 0]];then expect/root/soft_shell/delbak.exp #tar zxf $list/* Tar zxf $list/*-C $newfile/ SL EEP rm-f $list/bak.* #for i in $list/*;d o cp-r $i $newfile/;d one #sleep 1 #rm-F $list/*.gz else< br> echo "$date | Load download ... ">>/root/processlog.txt Fi |
S: I believe we all know how to confirm whether there is download, the script to check whether there is download down.exp, confirmed that the download was finished before decompression bak.tar.gz, and the extracted copy to a special backup directory, and execute the Delete script to delete the bak.tar.gz package in the Web directory on the server.
4. This is the script that deletes the BAK.TAR.GZ package on the server
Cat Delbak.exp
The code is as follows |
Copy Code |
#!/usr/bin/expect-f Set Timeout-1 Set passwd PASSWORD Spawn ssh-p18330 Root@124.248.xxx.xxx Expect { "Yes/no" {send "YESR"; Exp_continue} "Password:" {send "$PASSWDR"} } Expect "*#*" {send "Rm-f/var/www/vhosts/wwwroot/phpmyadmin/bak.tar.gzr"} Expect "*#*" {send "Exitr"} Expect EOF |
Finally, to use these scripts, remember to install the Axel and expect tools, or you will not be able to put down the backup package.
Original from: http://blog.slogra.com/post-517.html