打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
scp 定时备份30天

主机内部和主机之间的数据备份和转移是我们最长做的事情了,如果有web server那么可以 直接 wget http://www.xx.com/x.zip即可,如果有ftp server时,可以使用ftp命令上传下载,如果二者都没有的话,scp命令就有用武之地了。

scp简介

scp是secure copy的简写,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的

scp命令基本格式

1scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
2[-l limit] [-o ssh_option] [-P port] [-S program]
3[[user@]host1:]file1 [...] [[user@]host2:]file2

常用参数

1-P #port  注意是大写的P, SSH的端口号(默认22可以省略)
2-v  #用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .
3-C #允许压缩
4-r  #递归复制整个目录

常用方法

1#从 本地服务器 复制到 远程服务器
2#scp [可选参数] 本地文件/目录 远程用户名@远程地址:远程文件/目录
3 
4#本地文件backup.zip发送到远程backup目录下
5scp /home/backup.zip root@ip:/home/others/backup
6 
7#本地文件backup.zip发送到远程并改名为otherbackup.zip
8scp /home/backup.zip root@ip:/home/others/otherbackup.zip
9 
10#将本地backup整个复制到远程/home/others下
11scp  -r /home/backup root@ip:/home/others
12 
13#从 远程服务器 复制到 本地服务器
14#scp [可选参数] 远程用户名@远程地址:远程文件/目录 本地文件/目录
15#同理,只不过远程的写在前面

执行后,系统会要求输入远程SSH的登录密码(ps:上面命令中,远程用户名@,可以省略,这样执行后系统就是要求输入用户名和密码),同样可以使用密匙对的方式登录,方法参照Windows下Puty SSH公钥验证实现免密码登陆详细图文教程

将生成的公钥id_rsa.pub改名为authorized_keys,并上传到远程服务器的~/.ssh/下,私钥留着本地服务器。这样在执行上面命令后,就不需要密码了

定时备份方法

在建立密匙对方式登录后,我们可以在脚本中利用scp命令进行备份,利用crontab来定时执行

1#!/bin/sh
2backpath=/backup/   #本地备份目录
3date=`date +%y%m%d`
4site=sitename
5tar zcf ${backpath}${site}'-'${date}.tar.gz /var/html/www/${site}  #压缩网站数据,并以网站名-时间方式命名
6scp ${backpath}${site}'-'${date}.tar.gz root@ip:/var/backup #上传到远程服务器/var/backup中
7find ${backpath} -mtime +30 -exec rm {} \;  #删除本地备份目录超过30天前的数据

======================================================================================

==========================================bash============================================

======================================================================================

网站数据是一个网站的最重要的一部分,因为保护好我们的网站数据成为建站规划的首要任务。godaddy的名费空间由于一个超大的广告,很少有人用来做站,不过我们可以把网站数据上传到这个免费空间。
创建数据备份脚本

1、登录SSH,创建文件backup.sh

vi /root/backup.sh

2、粘贴以下代码到backup.sh,并保存。
注释:/home/backup为本地服务器存放备份文件的目录,可以自由更改。
DataBakName:数据库文件名
WebBakName:网站数据文件名
OldData   :五天后的自动删除的数据库文件
OldWeb   :五天后的自动删除的网站数据文件

#!/bin/bash
cd /home/backup
#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +'%Y%m%d').tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
OldData=Data_$(date -d -5day +'%Y%m%d').tar.gz
OldWeb=Web_$(date -d -5day +'%Y%m%d').tar.gz
#删除本地3天前的数据
rm -rf /home/backup/Data_$(date -d -3day +'%Y%m%d').tar.gz
#导出mysql数据库
/usr/local/mysql/bin/mysqldump -u root -p123456 zhumaohai > /home/backup/zhumaohai.sql
#压缩数据库
tar zcf /home/backup/$DataBakName /home/backup/*.sql
#删除sql文件
rm -rf /home/backup/*.sql
#压缩网站数据
tar zcvf /home/backup/$WebBakName /home/wwwroot
#上传到FTP空间,删除FTP空间5天前的数据
ftp -v -n 8.8.8.8 << END
user gdftpuser 123456
type binary
cd backup
delete $OldData
delete $OldWeb
put $DataBakName
put $WebBakName
bye
END

3、为backup.sh添加执行权限。

chmod +x /root/backup.sh

添加脚本至crontab(自动启动程序)

执行命令crontab -e,添加每天0点10分启动代码

10 00 * * * /root/backup.sh

测试脚本

执行脚本backup.sh

./backup.sh

稍等片刻,登录godaddy免费空间的FTP,看是否已经成功上传了备份文件,如果存在,证明脚本已经设置正确。否则,认真检查FTP信息是否设置正确。

这个脚本可以设置删除多少天前的数据,所以就不用担心免费空间的容量不足的问题。

转载请标明文章来源:《http://www.centos.bz/2011/03/vps-auto-backup-godaddy/》

======
tar zcf ${site}.tar.gz /home/${site}
==================================网站sh===================================================
#!/bin/sh
backpath=/backup/ #本地备份目录
date=`date +%y%m%d`
site=sitename
tar zcf ${backpath}${site}'-'${date}.tar.gz /home/${site} #压缩网站数据,并以网站名-时间方式命名
scp ${backpath}${site}'-'${date}.tar.gz root@ip:/var/backup #上传到远程服务器/var/backup中
find ${backpath} -mtime +30 -exec rm {} \; #删除本地备份目录超过30天前的数据

===================================================================================================


Linux(Centos)全自动异地备份数据(WEB+Mysql)
来源:我爱共享 作者:车仔 日期:2013-04-19 点击次数 88

文章开始之前,先问下各位站长一个问题:什么东西对于站长是十分重要的?其实对于站长而言,很多东西都是很重要的。但我们现在排除外在因素,把范围缩小到网站系统本身,哪些是非常重要的呢?网站数据就是其中之一了。

网站数据包括程序文件本身、网站运行过程中不断产生的附件数据(图片、文档、视频等)以及数据库文件,三大块总括为网站数据。

以自己为例,在这两年多的站长经历来看,最让我痛苦的就是某一天起床,一直苦心经营的网站打不开了,检查过DNS也正常,最后询问空间运营商发生什么事了,获知的结果系:服务器硬盘损坏,所有数据无法恢复(在这备注下:一般小站长买的机器或者空间都很低配置的,所以别想有什么数据备份服务,要就加钱买),结果就是一阵阵的失落。如果网站刚上线运行不久就发生这样的事或者还不会那么心痛,从头再来也不难。假如是一个运行若干年的网站,突然发生这么一次意外就可以说是重重一击。

刚成为站长的前几个月,我对数据备份这个事情压根没考虑过,直到有一天在群里看到有位群友痛心的经历——网站彻底崩溃,数据全没!!那是经营了3年多的一个老站,就么倒下了,真是闻者伤心听者落泪(有点夸张了)。

我看到了这样活生生的样板,不做数据备份的后果很严重。所以我现在总结出一个经验:如果真要用心做一个网站,就一定要做好数据备份工作,而且最好能异地备份,有些朋友以为在机器本地做了备份就乐了,放心了,那就大错。对于备份数据,又要面临一个实际的问题:每次都自己上服务器把相关的数据打包,然后再用FTP下载回来吗?这样时间长了就会累,所以今天就以Linux(Centos 5.5)环境讲讲如何实现全自动远程(异地)对全站数据进行备份。

要实现自动远程备份功能需要的关软件有:服务器(本地环境)要安装lftp,远程端要开启FTP服务,对登录的目录有读写权限,具备以上2个条件即可。

如果机器上没有安装lftp这个工具,可以通过以下命令完成:

#yum install lftp

假设把相关的脚本文件存放在/apps/script目录下

#vi /apps/script/autobackup.sh //输入以下内容

#!/bin/bash

#author: www.5ishare.com

echo 'backup job start'

#设置要备份的网站目录,即是网站的根目录

file=/apps/wwwdata

#设置本地备份目录,用于存放打包后的文件

backpath=/apps/bkdata/

dbuser=数据库用户名

#数据密码,要记得用单引号将把整个密码引起来,如果密码中有单引号就用双引号,嘿嘿

dbpwd='数据库密码'

dbname=数据库名称

domain=远程端的域名或者IP地址

user=FTP用户名

userpwd='FTP用户密码'

bkdate=$(date +%Y%m%d)

sqlfile_sql=${dbname}_${bkdate}.sql

sqlfile_gz=${dbname}_${bkdate}.tar.gz

sqlfp=${backpath}${bkdate}/$sqlfile_sql

if [ -e $backpath${bkdate} ]

then

echo $backpath is exists.

else

mkdir -p $backpath${bkdate}

fi

#执行数据库备份,/apps/mysql/bin/mysqldump修改为你实际环境的路径

/apps/mysql/bin/mysqldump -u $dbuser -p$dbpwd $dbname > ${sqlfp}

#对备份之后的数据库文件压缩,或者在数据库备份时通过加入参数直接进行压缩

tar zcf $backpath${bkdate}/$sqlfile_gz -C ${backpath}${bkdate} ${sqlfile_sql}

#删除未压缩SQL的文件

rm -f ${sqlfp}

#生成的文件名格式:web_网站目录名_20130419.tar.gz

fn=web_${file##*/}_${bkdate}.tar.gz

tar zcf $backpath${bkdate}/$fn -C ${file%/*} ${file##*/}

#以下操作为FTP自动连接并把本地文件上传到异地服务器上

/usr/bin/lftp ${domain} << END

user ${user} ${userpwd}

lcd ${backpath}

mirror -R ${bkdate}

exit

END

echo 'backup job done'

------------分隔线--------------

保存退出之后,为该脚本增加执行权限

#chmod +x /apps/script/autobackup.sh

#crontab –e //添加定时任务,根据具体需求设定备份间隔

#0 4 1,16 * * /apps/script/autobackup.sh

我设定为每月的1日,16日的零辰4点钟执行备份任务。最好不要在大白天做这些操作,因为会让整个系统明显变慢的。

经过以上配置,站长们就不用再愁数据备份的烦恼了,可以说是一劳永逸。以上仅为个人实际应用写,跟其各自的需求可能不大一样,但本质不变,只要稍作修改即可,如果有其它疑问欢迎大家留言交流学习。
本文地址:http://www.5ishare.com/tech/system/368842.shtml

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux数据备份手册
Linux下备份数据库和网站目录上传到ftp
Linux自动压缩备份目录文件与恢复
WSL安装和使用LxRunOffline备份
MySQL全库备份脚本
Postfix邮箱【十四】备份还原、邮箱转移、主从热备
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服