linux自动备份并上传文件|如何自动备份linux

linux自动备份并上传文件|如何自动备份linux的第1张示图

⑴ linux 每日自动备份文件的脚本

1、比如每天产生一个/data/access.log这样的文件,我们每天备份到backup目录的access_2011-01-12.log.gz这样的文件。2、增专加计划任务exportEDITOR=vicrontab-e00***/data/bak.sh;3、bak.sh文件内属容如下:cat/data/bak.sh#!/bin/bashlogs_dir=/databak_dir=/data/backupbak_file=access_`date+%Y%m%d`.log#tareveryday#echo"beginingoftar"tarzcf$bak_dir/$bak_file.gz$logs_dir/access.log#clearbak_file#echo"clearingfile.log"find$bak_dir-mtime+7-execrm-rf{}\;#end求采纳为满意回答。

⑵ Linux自动远程备份一个文件夹所有文件至一台服务器上的配置命令步骤

1.备份Linux系统window系统在运行状态下,我们是无法将文件拷贝出来的,那么在Linux下呢?她的文件结构式一种树型结构。而且在系统运行的时候我们可以进行打包所有系统文件。特别要说的在Linux的root账户具备系统上的任何操作,这也是为什么要创建一个比较低级别的用户权限来防止系统误操作导致系统崩溃的晕因了。下面看备份命令。#切换到rootsudosu#进入系统根目录cd/#执行打包命令tarcvpzflinuxbackup.tgz–exclude=/proc–exclude=/lost+found–exclude=/linuxbackup.tgz–exclude=/mnt–exclude=/sys/命令解释:tar:linux常用的打包程序cvpzf:式tar的参数,c-创建新文档v-处理过程中输出相关信息p-表示保持相同的权限z-调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩f-对普通文件操作linuxbackup.tgz:要打包成的文件名–exclude=/proc:排除/proc目录,不打包这个目录,后面也同理,记得排除自身打包的文件名/:表示打包linux根目录所有文件,当然了排除的文件不包含在内整个过程理解起来意思就是,创建一个新的文件名linuxbackup.tgz压缩文件,它保存式从排除了指定目录后的文件,并且保存原有的权限设置,这里必须记下你排除的目录,恢复的时候需要手动创建。具体哪些目录要排除在外,这个根觉不同的环境和工作需要进行选择就是了。执行后等待一定时间就可以了,将这个linuxbackup.tgz拷贝到其他地方即可,备份完成了。重点指出:在打包过程中不要进行任何的操作,否则会修改某些文件,在备份完后tar会提示错误。恢复也是一样。2.恢复Linux系统按照上面的方式备份完系统就可以使用该方法恢复你的备份文件了。如果你的系统崩溃了无法进入系统那么你可以借助引导CD或者其他引导系统进入,如果你可以进入系统,首先拷贝该备份文件到/目录下,然后执行下面命令进行恢复系统:#提升到rootsudosu#进入根目录cd/#解压恢复系统tarxvpfzlinuxbackup.tgz-C/等执行完后,别急着重启系统,要记得创建你在备份时候排除的目录,手动创建,例如上面我们排除,我们需创建mkdirprocmdkirlost+foundmkdirmntmkdirsys这个时候你就可以重启系统了。恢复完成了。

⑶ linux自动备份怎么搞,最好是具体到执行命令,

#!/bin/sh#BAKDIR可以换一个自己喜欢的BAK_DIR=/backup#*为未知,自己查一下怎么取星期啦,要0-6那个DATE=$(date+%*)#自己查一下怎么周数啦WEEK=$(date+%*)#备份文件名FULL_BAK=full_back.$WEEK.tar.bz2INCRE_BAK=increment_back.$WEEK.$DATE.tar.bz2#其实没什么不同的,只是要改文件名而已if[$DATE-eq0];thentar-g$BAK_DIR/sn.$WEEKcjf$BAK_DIR/$FULL_BAKelsetar-g$BAK_DIR/sn.$WEEKcjf$BAK_DIR/$INCRE_BAKfiexit$?#把任务加到crontab里就行了,每天执行一次================#!/bin/shBAK_DIR=/backup#还原目录RECOVER_DIR=/FULL_BAK=full_back.$WEEK.tar.bz2INCRE_BAK=increment_back.$WEEK.$DATE.tar.bz2echo-n"recoverfromweek:“readWEEKif[-e$BAKDIR/$FULL_BAK];thentarxjf$BAK_DIR/$FULL_BAK-C$RECOVER_DIRforNin$(seq6);doif[-e$BAK_DIR/$INCRE_BAK];thentarxjf$BAK_DIR/$INCRE_BAK-C$RECOVER_DIRfidoneelseecho"Backupfilenotexist!!exitnow~~"fiexit$?

⑷ linux怎么实现自动备份到云盘

1、比如每天产生一个/data/access.log这样的文件,我们每天备份到backup目录的access_2011-01-12.log.gz这样的文件。2、内增加计划任务export EDITOR=vicrontab -e0 0 * * * /data/bak.sh;3、bak.sh文件内容容如下:cat /data/bak.sh#!/bin/bashlogs_dir=/databak_dir=/data/backupbak_file=access_`date +%Y%m%d`.log# tar everyday#echo "begining of tar"tar zcf $bak_dir/$bak_file.gz $logs_dir/access.log# clear bak_file#echo "clearing file.log"find $bak_dir -mtime +7 -exec rm -rf {} \;#end

⑸ linux备份数据库并上传到FTP服务器

#!/bin/bash#设置日志文件,前提建好了/backup/log目录LogFile=/backup/log/`date +"%Y-%m"`.log#备份源目录SourceDir=/cvs#备份目标BakDir=/backup#保存20天过期自动删除RetainDay=20#备份的内容可以写进project.lst,如cvs目录下有a,b,c三个目录,project.lst填写多少就备份多少,下面是备份的#具体脚本,其核心是tar打包,并把重要的内容记录到日志文件里ProjectLst=/backup/project.lst##################################################DATE=`date +"%Y-%m-%d"`echo "backup start at $(date +"%Y-%m-%d %H:%M:%S")" >$LogFileecho "————————————————–" >>$LogFilecd $BakDirPROJECTLIST=`cat $ProjectLst`for Project in $PROJECTLISTdo ProjectData=$SourceDir/$Project DestDir=$BakDir/$Project PackFile=$DATE.$Project.tgz if [ -f $BakDir/$PackFile ] then echo "backup file have exist !" >>$LogFile else cp -RHpf $ProjectData $DestDir >/dev/null tar -zcvf $PackFile $Project >/dev/null echo "backup $Project done into $PackFile" >>$LogFile rm -rf $Project fidoneecho "————————————————–" >>$LogFileecho "backup end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFileecho " " >> $LogFile###################################################下面的内容就是把刚才备份的内容传到服务器上,前提是你有一个可以访问到底FTP服务器#put backup to ftp serverHOST=192.168.110.111FTP_USERNAME=ftpuserFTP_PASSword=123456cd $BakDirecho "start open ftp serverat $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFileecho "————————————————–" >>$LogFile/usr/bin/ftp -in < open $HOSTuser $FTP_USERNAME $FTP_PASSWORDput $DATE.$Project.tgzbyeEOFecho "put ftp end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile#最后上传完毕后再查看本地备份大于20天的自动删除,这样就可以实现本地异地双备份find $Bakdir -type f -mtime +$RetainDay -name "*.$Project.tgz" -exec rm {} \; >/dev/nullexit 0#最后我们还可用crontab做个周期性计划,比如每周一次全备份#59 23 * * 6 /home/backup.sh

⑹ 如何自动备份linux

清单 1: arc 的 shell 脚本 #!/bin/sh tar czvf $1.$(date +%Y%m%d-%H%M%S).tgz $1 exit $?arc 脚本接受单个文件或目录名作为参数,创建压缩的归档文件,并将当前日期嵌入到生成的归档文件名中。例如,如果存在一个名为 beoserver 的目录,那么可以调用 arc 脚本并将 beoserver 目录名传递给该脚本来创建压缩的归档文件,比如 beoserver.20040321-014844.tgz。使用命令 date 嵌入日期和时间戳有助于组织归档文件。日期格式是年、月、日、小时、分钟和秒 —— 但是秒字段的 使用可能有点多余。查阅 date 命令的手册(man date)可以了解该命令的其他选项。而且在清单 1 中,选项 -v (verbose) 被传递给 tar。该选项指示 tar 显示所有正在归档的文件。如果希望备份过程静默进行,那么请去除选项 -v。清单 2:将 beoserver 目录归档 $ ls arc beoserver $ ./arc beoserver beoserver/ beoserver/bookl.dat beoserver/beoserver_ab_off beoserver/beoserver_ab_on $ ls arc beoserver beoserver.20040321-014844.tgz

⑺ 如何自动备份数据库后将备份自动上传到FTP服务器

这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到远程FTP服务器的部署,在Linux技术交流群中,也有朋友会遇到这方面的问题,可以将此文分享给群友共益。注意:任何的操作都会具有风险性,请在本机实际测试通过之后再部署到服务器环境,这样即熟练的掌握了操作的技巧,也能在测试过程中发现问题,寻找解决方法。 说明:我这里要把MySql数据库存放目录/var/lib/mysql下面的data数据库备份到/home/mysql_data里面并且保存为mysqldata_bak_2012_12_19.tar.gz的压缩文件格式(2012_12_19是指备份执行时当天的日期)然后只保留最近7天的备份再把备份文件通过ftp服务器上传到指定空间,只保留最近7天的数据实现步骤:1、创建保存备份文件的路径:/home/mysql_data cd /home mkdir mysql_data2、创建备份脚本文件:/home/mysql_data/mysql_databak.sh cd /home cd mysql_data touch mysql_databak.sh vim mysql_databak.sh 输入以下内容:########################################################################################################!/bin/shDUMP=/usr/bin/mysqlmp #mysqlmp备份文件执行路径OUT_DIR=/home/mysql_data #备份存放路径LINUX_USER=root #系统用户名DB_NAME=data #要备份的数据库名字DB_USER=root #数据库账号 注意:非root用户要用备份参数 –skip-lock-tables,否则可能会报错DB_PASS=123456 #数据库密码DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份cd $OUT_DIR #进入备份存放目录DATE=`date +%Y_%m_%d` #获取当前系统时间OUT_SQL="$DATE.sql" #备份数据库的文件名TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名$DUMP -u$DB_USER -p$DB_PASS $DB_NAME –default-character-set=utf8 –opt -Q -R –skip-lock-tables> $OUT_SQL #备份tar -czf $TAR_SQL ./$OUT_SQL #压缩为.tar.gz格式rm $OUT_SQL #删除.sql格式的备份文件chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者find $OUT_DIR -name "mysqldata_bak_*" -type f -mtime +$DAYS -exec rm {} \; #删除7天前的备份文件deldate=` date -d -7day +%Y_%m_%d ` #获取7天前的时间ftp -n<<!open 192.168.1.1 21 #打开ftp服务器。21为ftp端口user admin 123456 #用户名、密码binary #设置二进制传输cd mysqlbak #进入ftp目录(这个目录必须为ftp空间真实存在的目录)lcd /home/mysql_data #列出本地目录prompt put mysqldata_bak_$DATE.tar.gz mysqldata_bak_$DATE.tar.gz #上传目录中的文件delete mysqldata_bak_$deldate.tar.gz mysqldata_bak_$deldate.tar.gz #删除ftp空间7天前的备份closebye !#######################################################################################################3、修改文件属性,使其可执行 chmod +x /home/mysql_data/mysql_databak.sh4、修改/etc/crontab vi /etc/crontab 在下面添加 30 1 * * * root /home/mysql_data/mysql_databak.sh 表示每天凌晨1:30分执行备份5、重新启动crond使设置生效 /etc/rc.d/init.d/crond restart chkconfig crond on #设为开机启动 service crond start #启动 每天你在/home/mysql_data目录下面可以看到类似mysqldata_bak_2012_12_19.tar.gz这样的压缩文件 如果需要恢复文件的时候,只需要把这个文件解压即可 解压缩tar -zxvf mysqldata_bak_2012_12_19.tar.gz至此,我们完成了Linux中Mysql数据库自动备份并上传到远程FTP服务器的部署。

⑻ linux 异地备份(ftp)

创建脚本/root/script/backup.sh# 该脚本应用于10多台普通的Linux应用服务器,多年来从未出过差错。# 数据库备份较为特殊,这里不包含数据库备份。# 因为脚本中含有FTP密码,所以FTP仅给予写权限较为安全,FTP中的老备份的定期删除任务由FTP服务器完成。# 备份加入到自动任务中,每周六23:00执行,并写入日志,如下:# 追加下面语句到/etc/crontab中# 0 23 * * 6 root /root/script/backup.sh >> /root/script/backup.log 2>&1#有注释版:#!/bin/bash#=====================================================#author zhaoyn#date 2010/12/31#=====================================================#参数设定basedir=/opt/backup #备份存放的目录days=15 #备份在本地保留天数bakfiles="/root/script /etc" #需要备份的目录或文件,请不要使用快捷方式或通配符ftpip=XXX.XXX.XXX.XXX #异地备份的FTP地址ftpuser='username' #异地备份的FTP用户名ftppw='password' #异地备份的FTP密码echo =====================================================datecd $basedir#删除备份目录中15天以前备份文件,不包含子目录find -maxdepth 1 -name "*.tgz" -mtime +"$days" -exec rm -f {} \;for bakfile in $bakfilesdofile=`basename $bakfile`#压缩打包需要备份的目录,包括权限,文件命名包含当前时间tar -czpf "$file"_$(date +%Y%m%d-%H%M).tgz $bakfile#大文件打包前后,缓解磁盘压力,降低I/O错误概率sleep 10s ;sync;syncdone#通过FTP上传当天备份的文件到异地ftp -v -n -i $ftpip <<ENDuser $ftpuser $ftppwbinmput *$(date +%Y%m%d)*.tgzbyeEND#无注释版:#!/bin/bash#=====================================================#author zhaoyn#date 2010/12/31#=====================================================basedir=/opt/backupdays=15bakfiles="/root/script /etc"ftpip=XXX.XXX.XXX.XXXftpuser='username'ftppw='password'echo =====================================================datecd $basedirfind -maxdepth 1 -name "*.tgz" -mtime +"$days" -exec rm -f {} \;for bakfile in $bakfilesdofile=`basename $bakfile`tar -czpf "$file"_$(date +%Y%m%d-%H%M).tgz $bakfilesleep 10s ;sync;syncdoneftp -v -n -i $ftpip <<ENDuser $ftpuser $ftppwbinmput *$(date +%Y%m%d)*.tgzbyeENDMysql的备份,如果凌晨可以停止几分钟,那么强烈建议对Mysql执行物理备份,脚本如下#!/bin/bash #History #===================================================== #When Who What #2010/3/24 Zhaoyn Create # #===================================================== basedir=/opt/backup updir=$basedir/updir timenow=$(date +%Y%m%d-%H%M) # 删除mysql十四天前的数据,注意,这里仅删除了mysql的tgz文件。rm -f `find $basedir -name "mysql*.tgz" -mtime +14` # 由于数据库在有连接的情况下,直接对数据文件打包是可能出问题的,所以这里我们在打包前要停用数据库,这样直接对数据文件打包,恢复时只需解压数据文件到新环境相应的目录即可,默认是/var/lib/mysql# 如果白天也要进行数据库备份,请使用mysqlmp命令,进行在线备份。恢复也挺方便的。/etc/rc.d/init.d/mysqld stop sleep 5s ;sync;sync tar -czpf $basedir/mysql.$timenow.tgz /var/lib/mysql /etc/rc.d/init.d/mysqld start#=====================================================附件中的脚本文件是有DOS换行符(CR/LF)的,复制文件中的内容到SSH客户端没有问题,如果直接拷贝文件到Linux系统中,可先运行下面的命令:mv *.txt *shdos2unix *.sh

⑼ linux自动备份网站及自动上传FTP脚本的方法

对于我们个人站长来说,数据的重要不用再谈,而很多站长经常忘记备份数据,也有无良的JS跑路,硬盘损坏,数据丢了,其中DS就丢失过好几次数据,如果没有备份,肯定悲剧,本文介绍一种自动备份数据的方法!本脚本特色:1.纯zip压缩,1-9可自行调整压缩率2.整台VPS备份,还原方便,非常适合站群3.加入压缩密码,可以自己设置4.加入绑米信息伪静态压缩,防止伪静态弄丢5.请确保在home目录下有backup目录,如果没有请执行mkdir/home/backup6.还原数据库请参考:导入数据库方法最后更新时间:2012年8月25日centos安装zip yuminstallzipdebian安装zipapt-getinstallzip下载编辑wget-chttp://www.***.com/soft/beifen.shvibeifen.sh只编辑注解为需要修改的地方【脚本开始】#!/bin/bash#下面的参数是你要修改的MYSQL_USER=root #mysql用户名MYSQL_PASS=mysql密码 #mysql密码FTP_USER=FTP用户名 #ftp用户名FTP_PASS=FTP密码 #ftp密码FTP_IP=FTP地址 #ftp地址FTP_backup=FTP目录 #ftp上存放备份文件的目录,这个要自己得ftp上面建的WEB_DATA=/home/wwwroot/ #要备份的网站数据WEB_BANGMI=/usr/local/nginx/conf/ #要备份的绑米信息WEB_MULU=/home/backup #备份文件存放目录WEB_MIMA=zhujima #备份时候的密码WEB_YASUOLV=1 #压缩率1-9如果VPS没有zip,请安装zip#上面是你要修改的地方 #删除淘宝客缓存,属于自定义设置。可自行操作#rm-rf/home/wwwroot/1.com/Apicache/* #定义数据库的名字和旧数据库的名字DataBakName=Data_$(date+"%Y%m%d").zip #定义数据库名字WebBakName=Web_$(date+%Y%m%d).zip #定义备份网站名字BANGMI=BANGMI_$(date+%Y%m%d).zip #定义绑米备份名字 OldData=Data_$(date-d-5day+"%Y%m%d").zip #定义5天前数据库名字OldWeb=Web_$(date-d-5day+"%Y%m%d").zip #定义5天前网站名字BANGMIshan=BANGMI_$(date-d-5day+"%Y%m%d").zip #定义5天前绑米名字 #删除本地3天前的数据rm-rf$WEB_MULU/Data_$(date-d-3day+"%Y%m%d").zip$WEB_MULU/Web_$(date-d-3day+"%Y%m%d").zip$WEB_MULU/BANGMI_$(date-d-3day+"%Y%m%d").zip #导出全部数据库cd$WEB_MULU/usr/local/mysql/bin/mysqlmp-u$MYSQL_USER-p$MYSQL_PASS–all-databases>$(date+"%Y%m%d").sql #压缩数据库文件为一个文件zip-r-$WEB_YASUOLV-P$WEB_MIMA$DataBakName$WEB_MULU/*.sqlrm-rf$WEB_MULU/*.sql #压缩网站数据cd$WEB_DATAzip-r-$WEB_YASUOLV-P$WEB_MIMA$WebBakName./*mv$WebBakName$WEB_MULU/$WebBakNamecd$WEB_MULU #压缩绑米信息cd$WEB_BANGMI#进入绑米目录zip-r-$WEB_YASUOLV-P$WEB_MIMA$BANGMI./*mv$BANGMI$WEB_MULU/$BANGMI #上传到FTP空间,删除FTP空间5天前的数据cd$WEB_MULU#进入备份目录ftp-v-n$FTP_IP<<ENDuser$FTP_USER$FTP_PASStypebinarycd$FTP_backupdelete$BANGMIshandelete$OldDatadelete$OldWebput$DataBakNameput$WebBakNameput$BANGMIbyeEND加入权限,写入定时执行chmod777/root/beifen.shcrontab-e3021***/root/beifen.sh注:每天21:30开始备份并且上传FTP本文地址:http://www.zhujima.com/139.html

未经允许不得转载:山九号 » linux自动备份并上传文件|如何自动备份linux

赞 (0)