linux备份加日期命令 linux定时备份

Linux dump命令

Linux dump命令用于备份文件系统。

站在用户的角度思考问题,与客户深入沟通,找到遂川网站设计与遂川网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、做网站、企业官网、英文网站、手机端网站、网站推广、域名申请虚拟主机、企业邮箱。业务覆盖遂川地区。

dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。

语法:

dump[-cnu][-0123456789][-b

区块大小][-B区块数目][-d密度][-f设备名称][-h层级][-s磁带长度][-T日期][目录或文件系统]或dump[-wW]

参数:

-0123456789 备份的层级

-b区块大小 指定区块的大小,单位为KB

-B区块数目 指定备份卷册的区块数目

-c 修改备份磁带预设的密度与容量

-d密度 设置磁带的密度,单位为BPI

-f设备名称 指定备份设备

-h层级 当备份层级等于或大于指定的层级时,将不备份用户标示为nodump的文件

-n 当备份工作需要管理员介入时,向所有operator群组中的使用者发出通知

-s磁带长度 备份磁带的长度,单位为英尺

-T日期 指定开始备份的时间与日期

-u 备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等

-w 与-W类似,但仅显示需要备份的文件

-W 显示需要备份的文件及其最后一次备份的层级,时间与日期。

Linux中每次使用tar命令备份后,如何通过计划任务和shell脚本实现备份后的文件名以日期开头?

首先tar命令能够指定生成的文件的名字,

可以 先用命令取得系统的时间,然后把日期复制给一个变量,

这样tar命令,就可以用那个变量当作生成文件的名字了。

计划任务使用crontab

如何在Linux服务器中备份

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

#!/bin/bash

#Setting

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

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

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

#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.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 [ -f $OldFile ]

then

rm -f $OldFile $LogFile 21

echo "[$OldFile]Delete Old File Success!" $LogFile

else

echo "[$OldFile]No Old Backup File!" $LogFile

fi

if [ -f $NewFile ]

then

echo "[$NewFile]The Backup File is exists,Can’t Backup!" $LogFile

else

case $BackupMethod in

mysqldump*)

if [ -z $DBPasswd ]

then

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

else

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

fi

tar czvf $NewFile $DumpFile $LogFile 21

echo "[$NewFile]Backup Success!" $LogFile

rm -rf $DumpFile

;;

mysqlhotcopy*)

rm -rf $DumpFile

mkdir $DumpFile

if [ -z $DBPasswd ]

then

mysqlhotcopy -u $DBUser $DBName $DumpFile $LogFile 21

else

mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile $LogFile 21

fi

tar czvf $NewFile $DumpFile $LogFile 21

echo "[$NewFile]Backup Success!" $LogFile

rm -rf $DumpFile

;;

*)

/etc/init.d/mysqld stop /dev/null 21

tar czvf $NewFile $DBPath $LogFile 21

/etc/init.d/mysqld start /dev/null 21

echo "[$NewFile]Backup Success!" $LogFile

;;

esac

fi

echo "-------------------------------------------"

echo

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

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

#crontab –e

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

//m h dom mon dow command

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

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

linux 系统如何备份,系统日志如何备份?

备份系统

我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Windows不同,Linux不会限制root访问任何东西,你可以把分区上的所有东西都扔到一个TAR文件里去!

首先成为root用户:

$ sudo su

然后进入文件系统的根目录(当然,如果你不想备份整个文件系统,你也可以进入你想要备份的目录,包括远程目录或者移动硬盘上的目录):

# cd /

下面是我用来备份系统的完整命令:

# tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys /

让我们来简单看一下这个命令:

“tar”当然就是我们备份系统所使用的程序了。

“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。

“backup.gz”是我们将要得到的档案文件的文件名。

“/”是我们要备份的目录,在这里是整个文件系统。

档案文件名“backup.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“

/lost+found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“

/mnt”排除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果

有挂载东西,必须把“/media”也排除在外。

有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。

执行备份命令之前请再确认一下你所键入的命令是不是你想要的。执行备份命令可能需要一段不短的时间。

备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件,它的尺寸有可能非常大。现在你可以把它烧录到DVD上或者放到你认为安全的地方去。

在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,多数情况下你可以忽略它。

你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:

# tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /

2、系统日志备份

只需要将日志文件移动到备份目录下

然后将日志压缩打包,并删除日志文件

最后重建日志文件

#!/bin/bash

#

nginx_app=/usr/local/nginx/sbin/nginx

logs_dir=/usr/local/nginx/logs

bak_dir=/tmp/logbak/

date=`date +%Y%m%d`

#

#先将日志文件移动到备份目录

cd $logs_dir

echo “moving logs”

mv *.log $bak_dir

sleep 3

#

#重建log文件

echo “rebuild logs”

echo “$nginx_app -s reopen”

$nginx_app -s reopen

#

#打包log文件,并以日期命名

echo “tar log”

cd $bak_dir

tar czf $date.tgz *.log

#

#删除备份目录的临时文件

echo “rm logs”

rm -f *.log

echo “done”

然后添加个计划任务,比如每天凌晨4点半执行,脚本位置在/root/logbak.sh

crontab -e

30 4 * * * sh /root/logbak.sh


文章名称:linux备份加日期命令 linux定时备份
文章起源:http://ybzwz.com/article/hhcdgc.html