轻松实现!7天不间断的Linux定时备份技巧 (linux定时备份7天)

在现代科技的推动下,越来越多的企业开始把业务数据放到服务器上,便于数据共享和备份。但是服务器的数据备份常常被忽略,一旦数据出现问题,后果不堪设想。定时备份是保证数据安全的一种方式,Linux系统自带的rsync命令可以帮助我们实现数据的定时备份。

本文将介绍如何使用Linux自带工具rsync实现7天不间断的自动备份,并提供一些备份方案供读者参考。

一、rsync命令备份基础

rsync是一个备份和复制的程序,在Linux系统中广泛使用。rsync备份可以通过网络途径进行,且支持归档保留,因此可以在本地及远程实现备份。以下的rsync命令可以实现本地备份。

rsync -av –delete –exclude “tmp/” /var/www/ /backup/www/

其中:

-a, –archive 表示按照归档方式备份,包括递归复制目录、保留权限、链接、时间戳和所有者等

-v, –verbose 显示详细输出

–delete 表示删除目标文件夹中在源文件夹中不存在的文件。

–exclude 表示排除匹配的文件或目录。在此例中,排除了备份文件夹/tmp/,避免对备份带来不必要的麻烦。

/var/www/表示源文件夹

/backup/www/表示目标文件夹。可以通过定时机制设置备份周期,实现自动化备份。

二、定时计划任务crontab

crontab是一种标准的Unix定时任务调度工具,在Linux系统中被广泛应用。 crontab可通过命令行进行调用和修改,也可以设置为定时任务,例如每天凌晨1点进行备份。

使用crontab定时任务之前需要了解crontab文件有5个变量,分别是 分(0-59),时(0-23),日(1-31),月(1-12),周(0-6,0是周日),每条命令一般由5个变量加上待运行的命令组成,如下所示:

* * * * * command

星号表示执行所有时间,所以一行命令可能如下所示:

0 * * * * command

以上命令表示每小时的第0分钟执行一次指定的命令。

如果需要每天凌晨1点进行备份,在命令行中输入以下语句:

0 1 * * * /usr/bin/rsync -av –delete –exclude “tmp/” /var/www/ /backup/www/

其中0表示每个小时的0分钟即凌晨1点执行,1表示小时(1-24),星号*表示每个月的每一天,也可以指定日期(例如10代表每个月的10号)。最后的命令即rsync备份命令。此设置会让Linux系统在每天的01:00执行rsync命令,实现数据备份。

三、3种备份方案

数据的备份和恢复是服务器管理的基本任务。以下介绍3种常见的备份方案,可供读者参考。

1. 本地备份

本地备份是指数据存储在本地计算机或存储设备上。具有以下优点:

备份速度快,不受网络限制。

对于小规模的数据进行备份,一般只需有足够的存储设备。

缺点是数据容易丢失,不能防止自然灾害或硬件故障带来的数据损失,要定期转存数据。

2. 远程备份

远程备份是指数据上传到远程服务器进行备份,具有以下优点:

数据安全性高,避免了因电脑故障、病毒、自然灾害等因素导致的数据损失。

随时随地可以访问备份数据。

缺点是备份过程受网络环境影响,例如上传速度缓慢。

3. 镜像备份

镜像备份是指将硬盘或磁盘完整复制到另一个硬盘或磁盘上,并保持相同的磁盘结构。镜像备份是最完美的备份方式,具有以下优点:

可以在不使用任何备份软件的情况下快速恢复,保留了整个数据系统。

缺点是备份速度较慢,需要足够的存储设备。

及时、规范、稳健的备份方案可以保证数据安全,为企业客户之间的信任提供了关键保障。以上是7天不间断的Linux定时备份技巧,希望能对读者有所帮助。

相关问题拓展阅读:

linux服务器自动备份mysql数据库的脚本!

你运气好,我这个也刚做好,发你一份把 。自动运行在window下的任务计划中添加,如需要Linux下的请H! 我··

@echo off

set sqlserver=”运闭aboa” \*aboa 为你 要备份的数据库名字

set dn=7 7天以前的,可自己设置

echo.

echo在D盘自动建立文件夹 back

echo.

if exist D:\back (

echo “已经存在文件夹”

) else (

md D:\back创建文件夹back

)

cd/d “D:\back”

echo Wscript.echo dateadd^(“d”,-%dn%,date^)>rd.vbs

for /f “tokens=1-3 delims=-” %%a in (‘cscript//nologo rd.vbs’)do (

set yy=%%a&set mm=00%%b&set “dd=00%%c”)

set ymd=%yy%-%mm:~-2%-%dd:~-2%&del rd.vbs

set n=0

for /f “delims=” %%i in (‘dir/b/a-d *.sql’)do (

if “旦歼%%~ti” lss “%ymd%9” (

cls&echo/&echo 正在删除 %%i

set/a n+=1

del “%%i”))

cls&echo/&echo/&echo 检查删除7天以前的备份文件完毕,共删除 %n% 个文件.旁迟裂

echo _______________________________

echo.

echo今天是 %date%

echo时间是 %time%

echo _______________________________

echo.

echoMySQL 数据库备份

echo正在进行数据备份中,请耐心等待…..

echo.

echo _______________________________

mysqldump –porth localhost -u root -proot –default-character-set=utf8 -R %sqlserver% > d:\back\%date:~0,4%-%date:~5,2%-%date:~8,2%.sql 备份的数据库文件名为当天的日期

echo.

pause

你是用什么方法解决的?

如何在Linux服务器中备份

linux系统下使用脚本定滑纳时备份数据库,代码如下:

#!/bin/bash

#Setting

#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式

#默认情况下备份方式是mysqldump,还可以是mysqldump,mysqldotcopy,如果注释掉第

#18行,则默认以tag的方式备份

#默认闹梁情况下,用root(空)登录mysql数据库信弯没,备份至/root/dbxx.tgz

DBName=mysql

DBUser=root

DBPasswd=123456

BackupPath=/home/wang/www/backup/mysql/mysqlbackup

LogFile=/home/wang/www/backup/mysql/db.log

DBPath=/var/lib/mysql/

#BackupMethod=mysqldump

#BackupMethod=mysqlhotcopy

#BackupMethod=tar

#Setting End

NewFile=”$BackupPath”db$(date +%y%m%d).tgz

DumpFile=”$BackupPath”db$(date +%y%m%d)

OldFile=”$BackupPath”db$(date +%y%m%d –date=’5 days ago’).tgz

echo “-” >> $LogFile

echo $(date +”%y-%m-%d %H:%M:%S”) >> $LogFile

echo “” >> $LogFile

#Delete Old File

if

then

rm -f $OldFile >> $LogFile 2>&1

echo “Delete Old File Success!” >> $LogFile

else

echo “No Old Backup File!” >> $LogFile

fi

if

then

echo “The Backup File is exists,Can’t Backup!” >> $LogFile

else

case $BackupMethod in

mysqldump*)

if

then

mysqldump -u $DBUser –opt $DBName > $DumpFile

else

mysqldump -u $DBUser -p$DBPasswd –opt $DBName > $DumpFile

fi

tar czvf $NewFile $DumpFile >> $LogFile 2>&1

echo “Backup Success!” >> $LogFile

rm -rf $DumpFile

;;

mysqlhotcopy*)

rm -rf $DumpFile

mkdir $DumpFile

if

then

mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1

else

mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1

fi

tar czvf $NewFile $DumpFile >> $LogFile 2>&1

echo “Backup Success!” >> $LogFile

rm -rf $DumpFile

;;

*)

/etc/init.d/mysqld stop >/dev/null 2>&1

tar czvf $NewFile $DBPath >> $LogFile 2>&1

/etc/init.d/mysqld start >/dev/null 2>&1

echo “Backup Success!” >> $LogFile

;;

esac

fi

echo “-“

echo

#lftp -f lftp.sh 如果有FTP可同时上传ftp中。

再利用crontab命令生成/var/spool/cron/root 文件:

#crontab –e

//打开一个编辑窗口,之一行会有内容格式的提示,在此输入命令

//m h dom mon dow command

//具体意义表示:分钟 小时 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command)

//如:* * * /home/backup/autobackupmysql.sh (表示零晨二点十分执行备份脚本)

LINUX通常使用tar命令进行数据备份,但外面很多资料所介绍的比较专业,也就比较复杂些,初学者很难看告告桥明白。现介绍一种“傻瓜式备份方案”,供初建LINUX服务器者参考。

1、首先我们要知道需要备份哪些数据。

一般包括数据库和网站数据,在本例中,数据库位于/var/lib/mysql/目录;网站位于/www/users/目录。

2、确定需要将数据备份在哪里,在这个分区中创建一个目录

应该挑选一个空间较大的分区,例: /var

键入命令:

cd /var

mkdir backup

3、创建备份目录后,进入备份目录

cd /var/backup

4、数据库一般应该完全备份,建议每次备份以当前日友老期命名

tar -czvf mysql.tar.gz /var/lib/mysql/*

这个命令的意思是,在当前目录下生成一个备份,备份的内容是/var/lib/mysql/目录下的所有内容

5、如果网站数据不多,可以每次将网站数据完全备份

tar -czvf users.tar.gz /www/users/*

6、如果网站数据较多(尤其是运营E站通,商城等每天更新文件量较大的系统),建议每月一次完袜猛全备份,每天(或每周)一次更新备份。这个备份方式即所谓的“差分备份”,差分备份要求每一次更新的备份都要针对上一次完全备份的时间。

例如:在10月15日进行一次完全备份:

tar -czvf users.tar.gz /www/users/*

在下一次完全备份前针对10月15日的完全备份进行更新备份(如每周一次):

tar -czvf users.tar.gz /www/users/* –newer 10/15/2023/

在进行“差分备份”后,如果需要恢复数据,应该是先恢复完全备份,再将最近的一次更新备份覆盖完全备份

直接备份数据库就行了。

在后台都有禅旅基备份选项的,备份到本地。

要连网站程序一起备份的话,可以用FTP软件将整贺谨个网站下载镇斗到本地。

备份分为两部分,轮乎网页、数据库。

1.用ftp软件雹升备份网页文件及设置

2.用系统提供的数据库管理软件,备份数源桐老据库。

关于linux定时备份7天的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 轻松实现!7天不间断的Linux定时备份技巧 (linux定时备份7天)