超简易当地备份数据网络服务器构建功略
摘要:上一篇说过两部网络服务器间绝大多数据文档传送,运用rsync、scp等奇异指令便能处理,此次立在超大型巨人的肩部上我们根据所述指令之一做下超简易的刚性需求运用~当地备份数据网...
上一篇说过两部网络服务器间绝大多数据文档传送,运用rsync、scp等奇异指令便能处理,此次立在超大型巨人的肩部上我们根据所述指令之一做下超简易的刚性需求运用~当地备份数据网络服务器!心动不,请再次看~
我们以便份网上数据信息库文档为例子(各种各样log文档还可以),当地系统软件是Ubuntu:
一。假定早已有一数量据库,且是建造的跟网络服务器同一台服务器,每日会出现定时执行脚本制作备份数据并缩小储存到固定不动文档夹(如宝塔面板的定时执行每日任务,储存到/www/backup/database 文档夹),可是电脑硬盘室内空间比较有限,挑选储存份数时也不能选许多份了,那麼别的储存时间的db文档就由当地网络服务器储存,既做到了多种备份数据的目地又节约了网络服务器电脑硬盘室内空间;针对备份数据目标是每日提高很快的各种各样log文档,尤其适合。
二。
1)明确好备份数据目标和网上文档文件目录后,我们刚开始开工了。文档文件目录和目标暂设/www/backup/database下为.gz末尾的装包过的数据信息库文档。
2)撰写当地定时执行指令,例,每日一点半备份数据网上IP为x.x.x.x的文件目录/www/backup/database 到当地的 /www/backup 文件目录下,全过程輸出我们以追加的方法载入到/www/wwwlogs/db_backup.log里边,不正确信息内容也载入到/www/wwwlogs/db_backup_error.log里边,指令以下:
crontab -e #开启Linux定时执行器编写页面
301 * * * rsync -tvzr 客户名@网上IP :/www/backup/database /www/backup >> /www/wwwlogs/db_backup.log 2>>/www/wwwlogs/db_backup_error.log
note:rsync假如是ssh方式的,提议把当地公匙提早放进到网上网络服务器的.ssh/authorized_keys文档内,也不用键入登陆密码了;假如网上网络服务器是ubuntu,最好查询一下远程控制设备是不是安裝ssh服务(ubuntu 沒有默认设置安裝ssh) 指令:ssh host ,假如显示信息
ssh: Could not resolve hostname host: Name or service not known
便是没装的
安裝ssh 指令 sudo apt-get install openssh-server
随后关掉ubuntu的防火安全墙 ufw disable
3)运作之后,如不经意外,当地早已有 www/backup/database/n个.gz开始的缩小文档,到这每日任务早已进行了一一大半了,不是是非常简单?但是有一个小难题?当地的数据信息假如能够删,我能操纵保存份数么?份数的作用网上的宝塔面板控制面板,准确说成网上的脚本制作早已拥有,难题是,网上室内空间比较有限啊,我又想多留几份,以便难测呢?那么就自身写一个脚本制作操纵呗!
说到这,这类小小的的运维管理每日任务也不劳烦各种程序编写語言了,我的习惯性是用PHP拿下它,shell和Python嘛,你爱用哪一个用哪一个,在下感觉PHP搞简易运维管理還是挺合适的,十分平稳,简易,沒有烦人的缩近和始料未及的运作时不正确,嘿嘿~
贴上一段小脚本制作,文档名:manage_db_backup.php
<?php
$conf_len = 18;
$file_arr = glob( "/www/backup/database/*.gz" );
if(count( $file_arr)> $conf_len ){
foreach( $file_arr as $v ){
$time_cut_line = date('Ymd',strtotime('-'.$conf_len.'days'));
$v_time = substr( end(explode('/',$v)) ,16,8 );
$v_time<$time_cut_line && unlink($v);
}
}else{
echo 'no delete files',PHP_EOL;
}
$file_arr2 = glob( "/www/backup/database/*.gz" );
echo 'delete,';
print_r( array_diff($file_arr,$file_arr2) );
echo PHP_EOL;
?>
之上脚本制作添加Linux定时执行器,指令:
302***phpmanage_db_backup.php>>/www/server/manage_db_backup.log2>&1
运作結果相近于
大获全胜!不是是非常简单?