linux服务器本地和百度云备份脚本小试

本地单文件上传脚本,命名uf

这是在本机上做的测试,利用bpcs_uploader脚本实现,只是进行简单的封装,自动完善云端文件路径。

技术要点:使用dirname获取文件所在目录,使用pwd获取文件完整路径,并作为云端文件路径。

#!/bin/bash

cur_dir=$(cd "$(dirname "$1")"; pwd)

name=$(basename "$1")

/home/grm/bin/bpcs_uploader/bpcs_uploader.php upload $1 AWIN$cur_dir/$name

本地文件夹上传脚本,命名ud

bpcs_uploader脚本只能实现单个文件上传,用此脚本可以实现目录批量上传。

技术要点:通过find命令输出目录下所有文件,用xargs -t -n1实现单个输出,从而可以遍历目录下所有文件,并作为参数逐次赋予脚本uf,通过不断调用脚本uf实现批量上传。

#!/bin/bash

find $1 -name '*.*' |xargs -t -n1 /home/grm/bin/uf

服务器数据库每日备份脚本,命名backupday.sh(改自鸟哥的linux私房菜)

技术要点:基本都是常规操作,注意find命令-mtime参数的使用

#!/bin/bash

# =========================================================

# 请输入,你想让备份数据放置到那个独立的目录去

basedir=/backup/daily/

# =========================================================

PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH

export LANG=C

basefile1=$basedir/mysql.$(date +%Y-%m-%d).tar.bz2

basefile2=$basedir/cgi-bin.$(date +%Y-%m-%d).tar.bz2

[ ! -d "$basedir" ] && mkdir $basedir

# 1. MysQL (数据库目录在 /var/lib/mysql)

cd /var/lib

tar -jpc -f $basefile1 mysql

# 2. 定期删除旧备份

DAYS=30

find $basedir -name "mysql*" -type f -mtime +$DAYS -exec rm {} \;

代码及其他配置每周备份脚本,命名为backupweek.sh

#!/bin/bash

# ====================================================================

# 使用者参数输入位置:

# basedir=你用来储存此脚本所预计备份的数据之目录(请独立文件系统)

basedir=/backup/weekly  

# ====================================================================

# 底下请不要修改了!用默认值即可!

PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH

export LANG=C

D=$(date +"%Y-%m-%d")

# 配置要备份的服务的配置档,以及备份的目录

postfixd=$basedir/postfix

vsftpd=$basedir/vsftp

sshd=$basedir/ssh

wwwd=$basedir/www

others=$basedir/others

userinfod=$basedir/userinfo

# 判断目录是否存在,若不存在则予以创建。

for dirs in $postfixd $vsftpd $sshd $wwwd $others $userinfod

do

 [ ! -d "$dirs" ] && mkdir -p $dirs

done

# 1. 将系统主要的服务之配置档分别备份下来,同时也备份 /etc 全部。

cd /etc/

 tar -jpc -f $vsftpd/vsftpd.$D.tar.bz2 vsftpd

cd /etc/

 tar -jpc -f $sshd/sshd.$D.tar.bz2 sshd ssh

cd /etc/

 tar -jpc -f $wwwd/httpd.$D.tar.bz2 httpd

cd /var/www

tar -jpc -f $wwwd/html.$D.tar.bz2    html

cd /

tar -jpc -f $others/etc.$D.tar.bz2   etc

# 2. 关於使用者参数方面

cp -a /etc/{passwd,shadow,group}    $userinfod

cd /var/spool

tar -jpc -f $userinfod/mail.$D.tar.bz2   mail

cd /

tar -jpc -f $userinfod/home.$D.tar.bz2   home

cd /var/spool

tar -jpc -f $userinfod/cron.$D.tar.bz2   cron at

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/cloud-computing/

# 3. 定期删除旧备份

DAYS=30

find $vsftpd -name "vsftpd*" -type f -mtime +$DAYS -exec rm {} \;

find $sshd -name "sshd*" -type f -mtime +$DAYS -exec rm {} \;

find $wwwd -name "ht*" -type f -mtime +$DAYS -exec rm {} \;

find $others -name "etc*" -type f -mtime +$DAYS -exec rm {} \;

find $userinfod -name "cron*" -type f -mtime +$DAYS -exec rm {} \;

find $userinfod -name "home*" -type f -mtime +$DAYS -exec rm {} \;

find $userinfod -name "mail*" -type f -mtime +$DAYS -exec rm {} \;

自动上传脚本auto_upload_daily.sh

其中upload.sh的代码与本地脚本uf相同。简言之,脚本uf是云备份的基础。

#!/bin/bash

LOCAL_DATA=/backup/daily

MYSQL_BACKUP=mysql.$(date +"%Y-%m-%d").tar.bz2

upload.sh $LOCAL_DATA/$MYSQL_BACKUP

自动上传脚本auto_upload_weekly.sh

#!/bin/bash

LOCAL_DATA=/backup/weekly

D=$(date +"%Y-%m-%d")

HTTP=www/httpd.$D.tar.bz2

HTML=www/html.$D.tar.bz2

ETC=others/etc.$D.tar.bz2

HOM=userinfo/home.$D.tar.bz2

MAIL=userinfo/mail.$D.tar.bz2

PASSWD=userinfo/passwd.$D.tar.bz2

SHADOW=userinfo/shadow.$D.tar.bz2

SSHD=ssh/sshd.$D.tar.bz2

VSFTPD=vsftpd/vsftpd.$D.tar.bz2

CRONA=userinfo/cron.$D.tar.bz2

upload.sh $LOCAL_DATA/$HTTP

upload.sh $LOCAL_DATA/$HTML

upload.sh $LOCAL_DATA/$ETC

upload.sh $LOCAL_DATA/$HOM

upload.sh $LOCAL_DATA/$MAIL

upload.sh $LOCAL_DATA/$PASSWD

upload.sh $LOCAL_DATA/$SHADOW

upload.sh $LOCAL_DATA/$CRONA

upload.sh $LOCAL_DATA/$SSHD

upload.sh $LOCAL_DATA/$VSFTPD

最后,再启动定时任务

为防止网络出现问题导致上传失败,重复了3次上传操作

# crontab -l

01 1 * * * /bin/backupday.sh 2>>/backup/errors.log

20 1 * * 0 /bin/backupwk.sh 2>>/backup/errors.log

01 2 * * * /bin/auto_upload_daily.sh 2>>/backup/errors.log

01 4 * * * /bin/auto_upload_daily.sh 2>>/backup/errors.log

01 6 * * * /bin/auto_upload_daily.sh 2>>/backup/errors.log

20 2 * * 0 /bin/auto_upload_weekly.sh 2>>/backup/errors.log

20 4 * * 0 /bin/auto_upload_weekly.sh 2>>/backup/errors.log

20 6 * * 0 /bin/auto_upload_weekly.sh 2>>/backup/errors.log

时间: 2024-10-31 01:11:03

linux服务器本地和百度云备份脚本小试的相关文章

使用Python实现对Linux服务器CPU内存网络的监控脚本

本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写.Python 是由 Guido van Rossum 开发的.可免费获得的.非常高级的解释型语言.其语法简单易懂,而其面向对象的语义功能强大(但又灵活).Python 可以广泛使用并具有高度的可移植性.本文 Linux 服务器是 Ubuntu 12.10, Python 版本 是 2.7 .如果是 Python 3.0 版本的语法上有一定的出入.另外这里笔者所说的 Python 是 CPython

linux 自动定时备份文件夹及备份脚本实例

服务器:阿里云 需求:对www目录,每天凌晨1点执行备份,以当天日期命名文件夹 在 alidata 文件夹里建立 wwwbak 目录 和 bakwww.sh 文件,操作如下: 新建 wwwbak 文件夹,执行如下命令:  # mkdir wwwbak# chmod -R 777 wwwbak 再新建 bakwww.sh 的文件,执行如下命令 # vi bakwww.sh 文件内容如下:cp -af /alidata/www/ /alidata/wwwbak/$(date -d "today&qu

百度空间备份脚本baidublogbak.vbs代码分析_vbs

'用法示例: 'cscript bak.vbs 百度用户名 第I页 至第n页 目录列表.htm 用户名 密码 '例如我的blgo示例: 'cscript baidublogbak.vbs myvbscript 0 3 url.htm myvbscript mima '表示从第0页备份到第3页,blog的共有页数打开http://hi.baidu.com/用户名/blog/index/0就可以看到了.url.htm存放的是目录列表 '注意的是百度是从0页计数的 '如果用户名和密码随便写也可以备份,

阿里云linux服务器上使用iptables设置安全策略的方法_Linux

公司的产品一直运行在云服务器上,从而有幸接触过aws的ec2,盛大的云服务器,最近准备有使用阿里云的弹性计算(云服务器).前两种云服务器在安全策略这块做的比较好,提供简单明了的配置界面,而且给了默认的安全策略,反观阿里云服务器,安全策略需要自己去配置,甚至centos机器上都没有预装iptables(起码我们申请两台上都没有),算好可以使用yum来安装,安装命令如下: yum install -y iptables iptables安装好后就可以来配置规则了.由于作为web服务器来使用,所以对外

阿里云linux服务器安全设置(防火墙策略等)_Linux

首先需要进行linux的基础安全设置,可以先参考这篇文章 http://www.jb51.net/article/94842.htm 1.Linux系统脚本 #!/bin/bash ######################################### #Function: linux drop port #Usage: bash linux_drop_port.sh #Author: Customer Service Department #Company: Alibaba Clo

配置Linux服务器SSH远程密钥登录

说明: 服务器IP:192.168.1.200 管理员账号:root 密码:chenyi 普通登录账号: itchenyi.com 密码:chenyi 实现目的: 1.配置普通账号通过密钥验证远程SSH登录服务器 2.禁用root账号通过远程SSH登录服务器 3.禁用所有账号通过密码验证远程SSH登录服务器 具体操作: 1.配置普通账号通过密钥验证远程SSH登录服务器 使用普通账号itchenyi.com登录服务器操作 ssh-keygen -t rsa #生成密钥 [itchenyi.com@

安全狗云备份怎么用?

  云备份客户端主要用于当前服务器备份上传及备份还原.云备份客户端提供单台服务器备份上传.当前服务器上传的备份文件还原及备份文件管理.当前服务器与其他服务器间备份文件共享等功能,同时,允许用户将之前通过云备份Web端上传的本地文件下载到当前服务器,实现本地与服务器间文件中转. 1.创建备份文件夹 用户在服务器上首次登录云备份客户端,系统将提示用户为当前服务器创建"备份文件夹",备份文件夹将用于保存所有从该服务器上传的备份文件,如图所示: 用户可以自定义备份文件夹名称,一般建议以

MySQL上云同步脚本-Python3

最近在做本地同步至云的脚本 使用kettle的话,几百个表的同步要一一设置,实在是蛋疼的紧 还好python可以解决一部分问题,所以写了个转换 由于5.6版本的mysql对null的处理不是很好,因此全部转为varchar型 blob和longblob,text都单独处理 #-*- coding: UTF-8 -*- #获取对比列表 #表结构同步到云上mysql #实现功能:oracle-mysql列转换/写入脚本/传输脚本 #待实现功能:执行脚本 #james.peng 20170905 im

Linux VPS/服务器 网站及数据库自动本地备份并FTP上传备份脚本_Linux

准备工作: 需要提前在VPS安装好lftp,lftp功能上比较强大,CentOS直接执行:yum install lftp,Debian执行:apt-get install lftp . 需要在VPS上创建/home/backup/ 目录,在FTP上创建backup目录. 如果VPS上数据库不多的话使用Godaddy的免费空间就可以(10GB空间,300GB流量),只要注册个域名就免费送. 下面将备份脚本进行部分注释: 复制代码 代码如下: #!/bin/bash #Funciont: Back