当前位置:首页 » 编程软件 » linux自动备份脚本

linux自动备份脚本

发布时间: 2022-05-17 06:40:02

A. 请教linux定时执行数据库备份脚本的问题

把以前写的一个发你看看
脚本要求:
编写shell脚本,每天凌晨1点备份td_oa库,到mysql-back目录,并将备份文件压缩,压缩名称为备份的日期,只保留连续七天的备份文件
#!/bin/bash
/usr/local/mysql/bin/mysqlmp
-uroot
-p123456
td_oa
>
td_oa.sql
&>/dev/null
a=`/bin/date
+%Y-%m-%d`
#在这里加上时间,压缩的时候加上时间,会失败。
echo
$a
cd
/gxl
/bin/tar
-czf
$a.tar
/fjp/td_oa.sql
b="$a.tar"
cp
-p
$b
/root/fjp
for
c
in
`find
/root/fjp
-ctime
+7`
do
/bin/rm
-rf
$c
done
自己根据自己的要求修改!

B. linux执行定时备份数据脚本

对tomcat目录,每隔4个小时进行一次备份,以当前时间进行命名

1.创建备份目录:

mkdir:创建目录

rmdir:删除目录


5.重启crontab:

service crond restart

!!!!(*^__^*) 嘻嘻……!!!!到这里就完了!

C. 如何在linux下实现mysql数据库每天自动备份

1. 写个自动备份的脚本autobackup.sh,内容如下
#!/bin/bash
mysqlmp -p databasename > mydata.sql
2. 更改其为可执行文件 chmod +x autobackup.sh
3. 通过crontab让系统自动运行这个脚本就好了,如crontab -e
0 0 * * * /路径到/autobackup.sh
第一个0表示分钟,第二个0表示0小时也就是零辰第三个*表示每天,第四个*表示每月,第五个*表示每周

D. linux 自动备份和恢复的脚本

Linux是公认的运行稳定、安全性较高的操作系统,但是服务器硬件故障和各种意外因素都会导致Linux服务器硬盘上数据丢失。特别对于运用在商业领域中的Linux服务器,数据的安全性、完整性和灾难后的数据恢复能力是每一个Linux系统管理员最为关心的问题。Linux作为新一代网络操作系统,在服务器方面的应用越来越广泛。作为专门的网络服务器,一个重要功能就是对服务器数据进行备份,以确保数据的安全。

常见的Linux数据备份方法

Linux操作系统中的数据备份工作是Linux系统管理员的重要工作和职责。传统的Linux服务器数据备份的方法很多,备份的手段也多种多样。常见的Linux数据备份方式仅仅是把数据通过TAR命令压缩拷贝到磁盘的其它区域中去。还有比较保险的做法是双机自动备份,不把所有数据存放在一台计算机上,否则一旦这台计算机的硬盘物理性损坏,那么一切数据将不复存在了。所以双机备份是商业服务器数据安全的基本要求。通常情况下使用的双机备份是双机定时备份文件,而不是实时的。要实现双机备份,必须先在单机上备份所有的文件,然后再把备份文件传输到其它机器上。这样可能比较麻烦,而且有不足之处。例如,这样做对于不需要备份的文件也要在网络上传输,会造成带宽的浪费。

实现备份与刻录的整合

为了弥补Linux上常见备份方法的不足,本文将讲述使用sitback软件将Linux服务器磁盘中的指定数据进行自动备份,并刻录到CDR光盘的方法,以达到数据在光盘中安全存储的目的。此方法将数据备份和光盘刻录两个步骤整合在一起,自动化程度和安全性较高,而且sitback还能实现Linux网络中不同计算机之间的数据备份。

sitback简介

sitback是一款基于开源协议开发的Unix平台下的自动备份软件。与一些 Linux开放源码软件不同,sitback开发者仅提供源代码压缩包的形式给Linux用户下载。尽管sitback没有提供安装方便的RPM格式,但是sitback的安装采用了基于GNU协议的自动安装和配置的automake/autoconf模式,使得一般的Linux系统管理员能顺利地安装调试好sitback。

sitback的获取和安装

目前sitback官方网站www.mrbean.dk提供的 sitback最高版本为0.3.1。为了能最大程度地体现sitback的最佳性能,sitback的开发者建议Linux用户不要把sitback的开发版本和Beta测试版本使用到实际的数据备份中去,以防出现意外。

安装sitback源代码压缩包可以根据以下几个简单的步骤完成:

◆建立临时解压目录 /temp;

◆把sitback压缩包拷贝到/temp目录,并使用“tar xvfz sitback-x.x.x.tar.gz”命令对sitback源代码压缩包进行解压;

◆执行./configure;

◆执行make;

◆执行make install。

通过以上几个步骤可以迅速地安装好sitback。请注意使用超级用户root身份对sitback进行安装。

编译完sitback源代码压缩包之后,接着要在用户根目录中的Home目录下创建一个.sitback目录。该目录用来存放一些数据备份和刻录时产生的临时文件,以及一些脚本文件或磁盘驱动器参数文件。

同所有通过编写脚本文件来运行的程序一样,sitback也需要Linux用户自行编写备份和刻录的脚本文件,并让Linux系统把sitback当作一个备份进程(backup-daemon)来自动执行。使用高效安全的Webmin管理系统来自动执行sitback也很方便。总之,用最少的代码编写出适合Linux系统实际情况的脚本是最为安全、高效的。

将数据刻录至光盘的条件

让sitback自动备份指定的磁盘数据,并将备份的数据直接刻录到光盘中去,必须考虑的条件主要有以下几点:

◆sitback运行的时间,即备份数据时间;

◆要备份的源目录;

◆要备份到的目的目录;

◆选择存储介质,包括磁介质、光存储介质等;

◆是否要对备份数据进行校验比较,提高备份安全性;

◆备份模式,全备份或部分数据备份;

◆备份数据还原问题。

sitback提供了很多参数供用户选择,具体参数和用法可以参考sitback源代码压缩包里的开发文档和详细的使用手册。

实例运用

实例1

假设某Linux服务器中有以下这些目录:

◆/usr/smbdata 包含大多数应用软件和用户数据文件;

◆/usr/grafik 包含有重要的图形文件。

为了备份以上两个目录数据,可以编写一个脚本文件,代码及说明如下:

ARCHIVE=/dev/st0

#定义要备份的数据

(ARCHIVE表示要备份的磁盘驱动器、文件目录,甚至主机,例如:

“backuphost:/dev/st0”、

“backup@backuphost:/dev/nrt0”、

[email protected]:/tmp/temp_backup.tar.gz”等)

TARGET=/usr/smbdata

#要备份的目的目录

TARGET=/usr/grafik

#要备份的目的目录

COMPRESSION=YES

#备份模式为对数据进行压缩后备份

VERIFY=YES

#对备份数据进行校验

REPORTFILE=/usr/smbdata/latest_backup.txt

#产生备份报告文件

REPORTPRINTER=//penguin4/Canon

#打印机信息

SMBUSER=computer1

#SAMBA用户端计算机名

SMBPASSWD=123abc

#访问密码

VOLUMENAME=Full backup - Taastrup

TIME=1;02;00

#备份时间,每天2:00进行备份

TIME=2;02;00

TIME=3;02;00

TIME=4;02;00

TIME=5;02;00

TIME=6;02;00

以上是一个简单的数据自动备份脚本的样本文件。如果想使用SysV初始化,可以在/etc/rc.d/init.d/中创建一个小的脚本文件来运行 sitback。在上述脚本最后一行加入“/usr/local/bin/sitback -d data”才能使得sitback自动运行。查看每次备份的情况时,可以打开临时文件/.sitback/sitback.log,里面有sitback 运行的详细记录。

实例2

使用sitback将Linux服务器中数据自动备份、刻录两个步骤进行整合。

为了达到数据备份和光盘刻录整合的目的,需要使用以下脚本来实现。它是来自sitback官方网站的样板脚本。

# Full backup of /home/bean, excluding Images

#对/home/bean,目录进行全备份

# [email protected] 2002

# Write the archive to my cd-writer at 0,0,0

#将备份数据在指定时间写入CDR刻录机中

# (Iomega ZIPCD 650, USB), use speed=2, so that i can 刻录机硬件参数

# do other things while the backup is cooking. Also

# use on-the-fly to avoid too much temporary data.

# (my machine has no problem supporting this)

#

ARCHIVE=0,0,0

SPEED=2

#Iomega ZIPCD 650, USB刻录机写入速度,

CD ON THE FLY

#写入方式

# It is a huge advantage to have the files directory available

# on the cd, not inside an archive, when restoring my

# setup, hence the type 'CDRW'

#

TYPE=CDRW

#光盘类型,CDRW可擦写光盘

# Targets... Exclude Images

TARGET=/home/bean

#目标文件目录

EXCLUDE=/home/bean/Images

#目标文件目录中不用备份的目录(即排除备份的目录)

# Various stuff. Compression and verification will automagically

# be turned off by sitback, but i do not want the warnings either,

# so i just turn it off from the beginning...

#

VERIFY=NO

#对备份数据进行校验

COMPRESSION=NO

#备份数据无需压缩

# When done, put a backup report in /home/bean/backup.log

#

REPORTFILE=/home/bean/backup.log

#产生的备份报告文件及路径

关于sitback备份数据的恢复及SSH等安全措施,此处不予举例说明。总的来说,sitback是一款不可多得的Linux操作系统平台中优秀的数据备份和恢复工具,使用sitback可以使得企业实现安全而高效的备份。

E. LINUX 自动备份怎么实现

首先我在/root/backup 目录下建立一个文件夹,

#mkdir /root/backup/mysqlbackup

以后在每天五点钟,就会有一个文件保存在这里.

接着新建文件

#vim /root/mysqlautobak

输入:

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

mysqlmp --all-databases -uroot -p(mysql密码)> /root/backup/mysqlbackup/mysql$file.sql保存退出!

让它可以执行

#chomd +X /root/mysqlautobak

接着开始完crontab了

#vi /etc/crontab添加一行01 5 * * * root /root/mysqlautobak

保存退出.

重新启动你的crond服务进程

# /etc/rc.d/init.d/crond restart

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

hp unix 自动全备份脚本(shell)

说明:每天夜里10点自动备份并且压缩,保留2天备份,在备份完当天后删除前天的备份。在一切执行之后,发邮件通知,邮件内容有删除文件和备份文件名称及备份开始时间,结束时间。
使用方法:nohup backup.sh &

filename:backup.sh
reportlist=""
while [ 1 ]
do
hou=`date +%H`
backdate=`date +%Y%m%d`
if [ $hou -eq 22 ]
then
begintime=`date +%Y-%m-%d:%H-%M`
cd /data_log2/for_test
log_txt=`ls -al -crt log.txt | awk '{print $9}' | wc -l`
if [ $log_txt -gt 0 ]
then
mv log.txt log.txt.bak
fi

exp owner=user file=/data_log2/for_test/tmp_now.dmp
compress /data_log2/for_test/tmp_now.dmp
mv tmp_now.dmp.Z report_$backdate.dmp.Z
echo "---------report database backuped----------- ">> log.txt
echo "filename="report_$backdate.dmp.Z >>log.txt

delfile=`ls -al -crt *.Z | awk '{print $9}' | head -1`
count=`ls -al -crt *.Z | awk '{print $9}' | wc -l`

if [ $count -gt 2 ]
then
rm `ls -al -crt *.Z | awk '{print $9}' | head -1`
echo "----------- old backup deleted ---------" >> log.txt
echo "the deleted backup filename="$delfile >> log.txt
fi

echo "-----------------beigin time----------------" >> log.txt
echo $begintime >> log.txt
echo "-----------------end time----------------" >> log.txt
echo `date +%Y-%m-%d:%H-%M` >> log.txt

rm log.txt.bak

mailx -s "10.203.116.23 daily database backup" -r ")" $reportlist < log.txt
fi

sleep 3600
done

======================================================================================
1 给我自己的服务器写的一段自动备份的shell
#!/bin/bash

#指定要备份的系统目录
SYSTEM_DIR=/home

#指定要备份的目录MAIL_DIR=mailbox #邮件目录
WEBSITE_DIR=www/html #WEB目录
DATABASE_DIR=databases #数据库目录

#指定备份文件的前缀
MAIL_PREFIX=mail
WEBSITE_PREFIX=web
DATABASE_PREFIX=database

#有朋友的一台WIN2K服务器,我在上面开了ftp,把备份文件传到他的服务器上,相当于我实现了个双机备份

#ftp服务器的IP
FTP_SERV=211.144.155.111
#ftp用户名
FTP_USER=username
#ftp密码
FTP_PASS=12345678

#备份文件存放目录
BACKUP_DIR=/home/backup

#格式化一下日期,备份文件时用日期来做文件名的
DATE=`date +%Y%m%d`

#开始备份邮件
if [ -f ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ]; then #如果当天的邮件已经备份,那没跳过
echo `date +%Y-%m-%d`'s mail backup file is existing
else #如果没有备份,那么用tar命令来打包邮件目录
tar -czvf ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${MAIL_DIR}
fi

#开始备份网站目录,备份过程同上
if [ -f ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ]; then
echo `date +%Y-%m-%d`'s webebsite backup file is existing
else
tar -czvf ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${WEBSITE_DIR}
fi

#开始备份数据库目录,备份过程同上
if [ -f ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ]; then
echo `date +%Y-%m-%d`'s database backup file is existing
else
tar -czvf ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${DATABASE_DIR}
fi

#开始把备份文件传输到另一台服务器上
ftp -i -n $FTP_SERV <<AUTO_FTP
user $FTP_USER $FTP_PASS
passive
binary
put ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ${MAIL_PREFIX}${DATE}.tar.gz
put ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ${WEBSITE_PREFIX}${DATE}.tar.gz
put ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ${DATABASE_PREFIX}${DATE}.tar.gz
AUTO_FTP

别忘了,还有最后一步,就是在crontab里加上个任务,这样你就不用每次备份都一步步地敲那些琐碎的命令了。

我的网站,希望大家多多交流

===================================
linux下:

MySQL :: Linux 下自动备份数据库的 shell 脚本
Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库。其实非常简单,主要就是使用 MySQL 自带的 mysqlmp 命令。

脚本内容如下:
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"

# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date +%F`

# TODO
$BIN_DIR/mysqlmp --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz

然后使用将此脚本加到 /etc/crontab 定时任务中:

01 5 * * 0 mysql /home/mysql/backup.sh

好了,每周日凌晨 5:01 系统就会自动运行 backup.sh 文件备份 MySQL 数据库了。

/home/www/inc/back

F. 在linux下如果写一个脚本每天自动备份一个目录啊请指教。谢谢。

使用shell和crontab来创建一个文件并用当天时间来命名本分的文件(假设备份的文件在/home/a 并将本分的文件放在/下)每天1点备份

在/下创建一个名字为backup.sh的脚本文件
cd /
vi backup.sh
#!/bin/sh
time=$(date '+%Y%m%d' )
mkdir $time

tar -jcvf /$time.bz2 /home/a

crontab -a
* 1 * * * /backup.sh

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

1、比如每天产生一个/data/access.log这样的文件,我们每天备份到backup目录的access_2011-01-12.log.gz这样的文件。
2、增加计划任务
export
EDITOR=vi
crontab
-e
0
0
*
*
*
/data/bak.sh;
3、bak.sh文件内容如下:
cat
/data/bak.sh
#!/bin/bash
logs_dir=/data
bak_dir=/data/backup
bak_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
求采纳为满意回答。

H. linux自动备份脚本,谢谢给个详细操作。本人Linux不熟

使用crontab -e命令进入定时执行设置里面添加
* */8 * * * bash /usr/local/scripts/ERP_bak.sh
保存退出
然后创建脚本
touch /usr/local/scripts/ERP_bak.sh
chmod +x /usr/local/scripts/ERP_bak.sh
vi /usr/local/scripts/ERP_bak.sh
编辑脚本输入以下内容
#!/bin/bash
tar zcvf ERP_bak-`date +%Y-%m-%d`.tgz /var/backup/
保存退出
每天8点就会在/usr/local/scripts/下生成一个归档文件比如今天是ERP_bak-2015-1-23.tgz

如果要恢复数据的话就进入 /usr/local/scripts/ 目录找到要恢复的tgz文件用 tar zxvf 解压就可以了

I. linux自动备份网站和数据库,到另外服务器上,为当前用户创建定时任务

linux自动备份网站和数据库,到另外服务器上,为当前用户创建定时任务两台服务器111,和117服务器,每天完成111服务器上网站和数据库自动备份到117服务器上1:我的111服务器上是当前用户:sxA:
查看当前用户的计划任务:crontab
-l是查看当前用户的任务用
vi
crontab
-e
是为sxw用户创建一个计划任务第一行:每天3点运行/home/sxw/rsync201.sh
shell脚本,第二行:和第三行是每天下午7点运行tar包,gaokaotong和phpcms文件第三行:每天7点22分运行/homesxw/back_up.sh
shell脚本,注意:这里是当前用户sxw,所以要shell脚本路径要有用户sxw权限,在这里/home/sxw/back_up
shell脚本,是当前用户sxw用户的家目录。B:
111服务器上/home/sxw/back_up.sh脚本code:-bash-3.2$
vim
/home/sxw/back_up.sh#!/bin/shecho
开始备份数据库mysqlmp
-u
jeecms
-pjeecms1234
gktcms
>
gktcms.sqlmysqlmp
-u
jeecms
-pjeecms1234
phpcms
>
phpcms.sqlecho
备份数据库完成,复制到117服务器端scp
-P
10022
gktcms.sql
[email protected]:/home/zkscp
-P
10022
phpcms.sql
[email protected]:/home/zkscp
-r
-P
10022
/opt/www/www2/phpcms.tar.gz
[email protected]:/home/zk/scp
-r
-P
10022
/opt/www/www2/gaokaotong.tar.gz
[email protected]:/home/zk/echo
发送完成C:
还要在111上做ssh信任,这个可参照ssh资料。很简单,只需要建立两个密钥。2:
117服务器上/homezk/自动就会多出两个tar包文件,phpcms.tar.gz
和gaokaotong.tar.gz这里每天自动保存两个文件,phpcms.tar.gz

gaokaotong.tar.gz文件
这里做了一个shell脚本,保存前两天的文件,跟上述111服务器上的建立计划任务一样:A:
查看117的计划任务:
crontabl
-lB:
在查看/home/zk/back.sh
的shell编写code:[zk@DB2~]$
vi
/home/zk/back.sh#!/bin/shTARFILE=/home/zk/phpcms.tar.gzif
[
-f
$TARFILE
];then
mv
/home/zk/phpcms.tar.gz
/home/zk/phpcms_$(date
+%Y%m%d).tar.gz
#remove
date
file
DATE_B=$(date
-d2
day
ago
+%Y%m%d)
FILENAME=/home/zk/phpcms_$DATE_B.tar.gz
if
[
-f
$FILENAME
];then
rm
-rf
/home/zk/phpcms_$DATE_B.tar.gz
else
echo
没有可删除文件
fielse
echo
没有源文件fi~
结束。

J. linux服务器操作系统,怎么实现定时备份数据库

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

#!/bin/bash
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是mysqlmp,还可以是mysqlmp,mysqldot,如果注释掉第
#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=mysqlmp
#BackupMethod=mysqlhot
#BackupMethod=tar
#SettingEnd
NewFile="$BackupPath"db$(date+%y%m%d).tgz
DumpFile="$BackupPath"db$(date+%y%m%d)
OldFile="$BackupPath"db$(date+%y%m%d--date='5daysago').tgz
echo"-------------------------------------------">>$LogFile
echo$(date+"%y-%m-%d%H:%M:%S")>>$LogFile
echo"--------------------------">>$LogFile
#DeleteOldFile
if[-f$OldFile]
then
rm-f$OldFile>>$LogFile2>&1
echo"[$OldFile]DeleteOldFileSuccess!">>$LogFile
else
echo"[$OldFile]NoOldBackupFile!">>$LogFile
fi
if[-f$NewFile]
then
echo"[$NewFile]TheBackupFileisexists,Can’tBackup!">>$LogFile
else
case$BackupMethodin
mysqlmp*)
if[-z$DBPasswd]
then
mysqlmp-u$DBUser--opt$DBName>$DumpFile
else
mysqlmp-u$DBUser-p$DBPasswd--opt$DBName>$DumpFile
fi
tarczvf$NewFile$DumpFile>>$LogFile2>&1
echo"[$NewFile]BackupSuccess!">>$LogFile
rm-rf$DumpFile
;;
mysqlhot*)
rm-rf$DumpFile
mkdir$DumpFile
if[-z$DBPasswd]
then
mysqlhot-u$DBUser$DBName$DumpFile>>$LogFile2>&1
else
mysqlhot-u$DBUser-p$DBPasswd$DBName$DumpFile>>$LogFile2>&1
fi
tarczvf$NewFile$DumpFile>>$LogFile2>&1
echo"[$NewFile]BackupSuccess!">>$LogFile
rm-rf$DumpFile
;;
*)
/etc/init.d/mysqldstop>/dev/null2>&1
tarczvf$NewFile$DBPath>>$LogFile2>&1
/etc/init.d/mysqldstart>/dev/null2>&1
echo"[$NewFile]BackupSuccess!">>$LogFile
;;
esac
fi
echo"-------------------------------------------"
echo
#lftp-flftp.sh如果有FTP可同时上传ftp中。

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

#crontab–e
//打开一个编辑窗口,第一行会有内容格式的提示,在此输入命令
//mhdommondowcommand
//具体意义表示:分钟小时日期月份星期命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command)
//如:1002***/home/backup/autobackupmysql.sh(表示零晨二点十分执行备份脚本)
热点内容
app什么情况下找不到服务器 发布:2025-05-12 15:46:25 浏览:714
php跳过if 发布:2025-05-12 15:34:29 浏览:467
不定时算法 发布:2025-05-12 15:30:16 浏览:131
c语言延时1ms程序 发布:2025-05-12 15:01:30 浏览:166
动物园灵长类动物配置什么植物 发布:2025-05-12 14:49:59 浏览:737
wifi密码设置什么好 发布:2025-05-12 14:49:17 浏览:150
三位数乘两位数速算法 发布:2025-05-12 13:05:48 浏览:399
暴风影音缓存在哪里 发布:2025-05-12 12:42:03 浏览:545
access数据库exe 发布:2025-05-12 12:39:04 浏览:632
五开的配置是什么 发布:2025-05-12 12:36:37 浏览:367