⑴ 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
⑵ linux一个文件夹下只保留以日期命名的最新的文件怎么弄
1、首先将D盘下的DATA文件夹进行压缩成zip格式,保存到D盘下的Backup文件夹中。
2、其次以日期时间命名,因vbs没有压缩的机制,就调用压缩工具进行执行压缩。
3、然后安装7zip压缩文件,下载后开始安装并记住安装路径,开始执行直至压缩备份成功。
4、最后通过系统的计划任务进行定期执行脚本即可。
⑶ 写一个在linux下mysql自动备份脚本。要求:生成带日期的备份文件并保存到相应日期的目录下
其实这个是很简单的。
你可以用date打印出日期,然后来创建文件夹。
然后利用mysqlmp 来导出数据库脚本。
如果你想恢复,就可以利用被导出的脚本恢复任意数据。
⑷ linux下备份文件
一、使用tar命令进行备份:
tar命令本来的作用是能够把很多文件放到一个小文件中进行归档,但是同时又能够对文件进行压缩。所以,一般情况下都采用tar进行文件整理和压缩。
/* 把/root整个目录进行压缩备份 */
# tar cvzf /tmp/root_backup_1215.tar.gz /root
那么就能够把 /tmp/root_backup_1215.tar.gz进行存储,比如保存到磁带机上等。
说明: 压缩的tar档案通常的扩展名是 tar.gz、tgz、或者tar.bz2。前两个扩展名一般是使用gzip命令进行压缩的tar档案,后一个扩展名是
基于bzip2的压缩,因为压缩算法的原因,后一个压缩更强。
同时,也很容易把已经打包压缩的文件进行恢复:
/* 从备份文件中进行还原 */
# tar tkvzf root_backup_1215.tar.gz
二、使用cpio备份存档:
cpio ( in/out) 命令可以建立存档,跟tar不同之处在于,能够处理标准的输入输出。顾名思义,就是复制,输入,输出的意思。
如果要备份root的文件,使用下列命令:
# find /root | cpio -o > /tmp/root_backup_1215.cpio
cpio能够使用通配符将一组文件设置成标准输入。比如,下面见所有的.tif文件建立档案:
# find *.tif | cpio -o > /tmp/back.cpio
记住,find命令很灵活,下列命令把系统中所有的.tif文件进行归档:
# find / -name '*.tif' | cpio -o > /tmp/back_tif.cpio
同时,也很容易从cpio档案中恢复文件。下列命令恢复back_tif.cpio中的文件:
# cpio -i < back_tif.cpio
和tar命令一样,cpio命令恢复从目录保存的文件时,取决于是相对路经还是绝对路经。
cpio命令还有一个优点是可以直接将文件发送给外部源。
例如,下列命令恢复/root主目录中的文件,并把文件发送到SCSI磁带机:
# find /root | cpio -o -> /dev/st0
# cpio -i < /dev/st0
⑸ 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(表示零晨二点十分执行备份脚本)
⑹ 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
求采纳为满意回答。
⑺ linux如何根据文件的最后改动时间进行定时备份
touch -t 201510111213.14 test.txt 更改文件的时间为2015年10月11号12点13分14秒 touch 还有个参数-d 这个是以当前时间为基准版,几天前这个时候权 touch -d "5 days ago" test.txt
⑻ linux怎么将文件按修改时间归类备份
你这需要写脚本校验,对比时间规范,划分时间段进行归档,估计一个递归算法总体便利下文件就可以,不过貌似这个方法比较土