① linux把用户目录下的.c文件备份到bak文件夹中,命令怎么写
cp /home/name/*.c ./bak
② (十六)Linux文件备份
1.Linux系统需要备份的数据
/root/目录:
/home/目录:
/var/spool/mail/目录:
/etc/目录:
其他目录:
数据备份的原则: 不要把鸡蛋放在同一个篮子里
2.安装服务的数据
apache需要备份的数据
配置文件
网页主目录
日志文件
mysql需要备份的数据
源码包安装的mysql:/usr/local/mysqld/data/
RPM包安装的mysql:/var/lib/mysql/
3.备份策略
完全备份: 完全备份就是指把所有需要备份的数据全部备份,当然完全备份可以备份整块硬盘,整个分区或某个具体的记录(需要更大的硬盘空间和时间)
增量备份: 第一天完全备份,第二天备份当天新增数据,第三天备份当天数据,即每次都是备份新增数据,每次备份后数据要进行压缩(需要较小的硬盘空间恢复麻烦)
差异备份: 第一天完全备份,第二天备份当天新增数据,第三天备份相比原始备份新增数据,即每次都是备份与原始数据相比的新增数据(比完全备份需要的空间小一点,比增量备份恢复容易一点)
1.mp命令
mp [选项] 备份之后的文件名 原文件或目录
选项
-level 就是我们说的0-9十个备份级别
-f 文件名 指定备份之后的文件名
-u 备份成功之后,把备份时间记录在/etc/mpdates文件
-v 显示备份过程中更多的输出信息
-j 调用bzib库压缩备份文件,其实就是把备份文件压缩为.bz2格式
-W 显示允许被mp的分区的备份等级及备份时间
备份分区实例
mp -0uj -f /root/boot.bak.bz2 /boot/ 备份命令,先执行一次完全备份,并压缩和更新备份时间
cat /etc/mpdates 查看备份时间文件
cp install.log /boot/ 复制日志文件到boot分区
mp -luj -f /root/boot.bak1.bz2 增量备份/boot分区,并压缩
mp -W 查询分区的备份时间及备份级别的
备份文件或目录实例
mp -0j /root/etc.mp.bz2 /etc/ 完全备份/etc/目录,只能使用0级别进行完全备份,而不再支持增量备份
注意: mp只能针对分区做增量备份,对文件或目录不能进行增量备份
2.restore命令
restore [模式选项] [选项]
模式选项:restore命令常用的模式有一下四种,这四个模式不能混用
-C 比较备份数据和实际数据的变化
-i 进入交互模式,手工选择需要恢复的文件
-t 查看模式,用于查看备份文件中拥有哪些数据
-r 还原模式,用于数据还原
选项
-f 指定备份文件的文件名
比较备份数据和实际数据的变化
mv /boot/vmlinuz-2.3.32--279.el6.i686 /boot/vmlinuz-2.6.32-279.el6.i686.bak
把boot目录中内核镜像文件改个名字
restore -C -f /root/boot.bak.bz2
restore发现内核镜像文件丢失
查看模式
restore -t -f boot.bak.bz2
还原模式
还原boot.bak.bz2分区备份
mkdir boot.test
cd boot.test/
先还原完全备份的数据
restore -r -f /root/boot.bak.bz2
再恢复增量备份的数据
restore -r -f /root/boot.bak1.bz2
还原/etc/目录的备份etc.mp.bz2
restore -r -f etc.mp.bz2
还原etc.mp.bz2备份
③ linux下备份文件
其实不管是linux系统还是windows系统,重要文件都是需要进行备份的,备份也分两种手动或者自动,那么在linux下如何自动备份文件呢?下面来跟大家分享一下。
1、首先新建一个脚本文件,输入touch /home/backup.sh,点击回车键。
2、打开刚刚创建的脚本文件,输入vi /home/backup.sh,点击回车键。
3、输入:
#!/bin/bash
date_time=`date +"%Y%m%d%H%M"`
backup_dir=/www/backup
backup_log=/data/backup/svn_backup_logs/backup.log
err_log=/data/backup/svn_backup_logs/err.log
echo -e "\033[33m--------------------------------------\033[0m" >> ${backup_log}
echo -e `date +"%Y-%m-%d %H:%M"` >> ${backup_log}
echo -e "Starts backing up openvpn...." >> ${backup_log}
cd /opt
zip -r ${backup_dir}/vpn_${date_time}.zip svn 1>/dev/null 2>>${err_log}
if [ "$?" -ne 0 ];then
echo -e "\033[31svn backup failed!\033[0m" >> ${backup_log}
echo -e "\033[33m--------------------------------------\033[0m" >> ${backup_log}
echo -e "\n" >> ${backup_log}
echo -e "at ${date_time} packaged svn file error" >> ${err_log}
echo -e "\n" >> ${err_log}
其中date_time:备份时间;backup_dir:备份到那个目录;backup_log:备份成功的log文件;err_log:备份失败的log文件;这些根据需要进行修改。
4、保存后运行该脚本,首先cd到脚本所在的文件夹,输入cd /home,点击回车键。
5、输入./backup.sh,点击回车键即可运行脚本。
6、在linux下这种备份方法还是挺简单的,那如果换成windows操作系统,如果我们想定时备份文件该如何操作呢,有的运营会选择使用windows server backup,但是由于这个功能创建备份计划时只能够创建一个,小编所在的公司是放弃的,直接使用了备份软件来操作,下面就以大势至server文件备份软件来设置下备份供大家参考下。
7、网络下载该系统,解压后进行安装,安装完成后返回桌面找到快捷方式,双击打开,根据提示输入帐号admin和密码123,点击确定。
8、在主界面中部找到并点击新增计划,在弹出的窗口中找到源备份路径,点击其后的浏览,选中需要备份的文件或者文件夹,点击确定。
9、在后方备份目标路径中输入备份保存的路径,这里可以是本地路径也可以是远程服务器路径,如果是远程服务器路径则在点击添加后需要输入远程服务器帐号和密码,点击确定。
10、在左侧菜单中点击备份开始时间,在右侧设置备份开始的日期和时间。
11、在左侧菜单中点击全量备份频率,在右侧勾选全量备份启用,然后设置备份频率。
12、在左侧菜单中点击增量备份频率,在右侧勾选增量备份启用,最后设置增量备份的备份频率。
13、在左侧菜单中点击备份数据清理,在右侧设置清理的周期,最后点击保存,计划创建完成,如果需要创建多个备份计划,通过相同的设置方法继续设置即可。
④ linux 系统如何备份,系统日志如何备份
本文是在linux下,mysql 4.1.14版本下测试的,经过适当修改可能适合mysql 4.0,5.0及其其他版本.
本文适合于没有启动复制功能的mysql,如果启动了复制,可能不需要采取这种备份策略或者需要修改相关参数.
每个人的备份策略都可能不同,所以请根据实际情况修改,做到举一反三,不要照搬照抄,可能会造成不必要的损失.
希望你明白这个脚本要干什么工作!
脚本描述
每7天备份一次所有数据,每天备份binlog,也就是增量备份.
(如果数据少,每天备份一次完整数据即可,可能没必要做增量备份)
作者对shell脚本不太熟悉,所以很多地方写的很笨 :)
开启 bin log
在mysql 4.1版本中,默认只有错误日志,没有其他日志.可以通过修改配置打开bin log.方法很多,其中一个是在/etc/my.cnf中的mysqld部分加入:
[mysqld]
log-bin
这个日志的主要作用是增量备份或者复制(可能还有其他用途).
如果想增量备份,必须打开这个日志.
对于数据库操作频繁的mysql,这个日志会变得很大,而且可能会有多个.
在数据库中flush-logs,或者使用mysqladmin,mysqlmp调用flush-logs后并且使用参数delete-master-logs,这些日志文件会消失,并产生新的日志文件(开始是空的).
所以如果从来不备份,开启日志可能没有必要.
完整备份的同时可以调用flush-logs,增量备份之前flush-logs,以便备份最新的数据.
完整备份脚本
如果数据库数据比较多,我们一般是几天或者一周备份一次数据,以免影响应用运行,如果数据量比较小,那么一天备份一次也无所谓了.
#!/bin/sh
# mysql data backup script
# by scud
# 2005-10-30
#
# use mysqlmp --help,get more detail.
#
BakDir=/backup/mysql
LogFile=/backup/mysql/mysqlbak.log
DATE=`date +%Y%m%d`
echo " " >> $LogFile
echo " " >> $LogFile
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
cd $BakDir
DumpFile=$DATE.sql
GZDumpFile=$DATE.sql.tgz
mysqlmp --quick --all-databases --flush-logs
--delete-master-logs --lock-all-tables
> $DumpFile
echo "Dump Done" >> $LogFile
tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1
echo "[$GZDumpFile]Backup Success!" >> $LogFile
rm -f $DumpFile
#delete previous daily backup files:采用增量备份的文件,如果完整备份后,则删除增量备份的文件.
cd $BakDir/daily
rm -f *
cd $BakDir
echo "Backup Done!"
echo "please Check $BakDir Directory!"
echo " it to your local disk or ftp to somewhere !!!"
ls -al $BakDir
上面的脚本把mysql备份到本地的/backup/mysql目录,增量备份的文件放在/backup/mysql/daily目录下.
注意:上面的脚本并没有把备份后的文件传送到其他远程计算机,也没有删除几天前的备份文件:需要用户增加相关脚本,或者手动操作.
增量备份
增量备份的数据量比较小,但是要在完整备份的基础上操作,用户可以在时间和成本上权衡,选择最有利于自己的方式.
增量备份使用bin log,脚本如下:
#!/bin/sh
#
# mysql binlog backup script
#
/usr/bin/mysqladmin flush-logs
DATADIR=/var/lib/mysql
BAKDIR=/backup/mysql/daily
###如果你做了特殊设置,请修改此处或者修改应用此变量的行:缺省取机器名,mysql缺省也是取机器名
HOSTNAME=`uname -n`
cd $DATADIR
FILELIST=`cat $HOSTNAME-bin.index`
##计算行数,也就是文件数
COUNTER=0
for file in $FILELIST
do
COUNTER=`expr $COUNTER + 1 `
done
NextNum=0
for file in $FILELIST
do
base=`basename $file`
NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $COUNTER ]
then
echo "skip lastest"
else
dest=$BAKDIR/$base
if(test -e $dest)
then
echo "skip exist $base"
else
echo "ing $base"
cp $base $BAKDIR
fi
fi
done
echo "backup mysql binlog ok"
增量备份脚本是备份前flush-logs,mysql会自动把内存中的日志放到文件里,然后生成一个新的日志文件,所以我们只需要备份前面的几个即可,也就是不备份最后一个.
因为从上次备份到本次备份也可能会有多个日志文件生成,所以要检测文件,如果已经备份过,就不用备份了.
注:同样,用户也需要自己远程传送,不过不需要删除了,完整备份后程序会自动生成.
访问设置
脚本写完了,为了能让脚本运行,还需要设置对应的用户名和密码,mysqladmin和mysqlmp都是需要用户名和密码的,当然可以写在脚本中,但是修改起来不太方便,假设我们用系统的root用户来运行此脚本,那么我们需要在/root(也就是root用户的home目录)创建一个.my.cnf文件,内容如下
[mysqladmin]
password =password
user= root
[mysqlmp]
user=root
password=password
注:设置本文件只有root可读.(chmod 600 .my.cnf )
此文件说明程序使用mysql的root用户备份数据,密码是对应的设置.这样就不需要在脚本里写用户名和密码了.
自动运行
为了让备份程序自动运行,我们需要把它加入crontab.
有2种方法,一种是把脚本根据自己的选择放入到/etc/cron.daily,/etc/cron.weekly这么目录里.
一种是使用crontab -e放入到root用户的计划任务里,例如完整备份每周日凌晨3点运行,日常备份每周一-周六凌晨3点运行.
⑤ Linux mp命令
mp命令用于备份ext2或者ext3文件系统。可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。
命令格式:mp [选项] [参数] 需要备份的文件
常用选项即参数:
-[0-9]:备份的层级
-f 设备名称:指定备份设备;
-u:备份完毕后,在/etc/mpdates中记录备份的文件系统、层级、日期与时间等
用法示例:
将/home目录所有内容备份到/tmp/homeback.bak文件中,备份层级为0并在/etc/mpdates中记录相关信息:
$ mp -0u -f /tmp/homeback.bak /home 将/home目录所有内容备份到/tmp/homeback.bak文件中,备份层级为1(只备份上次使用层次0备份后发生过改变的数据)并在/etc/mpdates中记录相关信息:
$ mp -1u -f /tmp/homeback.bak /home 通过mp命令的备份层级,可实现完整+增量备份、完整+差异备份,在配合crontab可以实现无人值守备份。
⑥ Linux里面系统如何备份
对于备份和恢复来说,Linux提供了诸如tar、cpio、 mp等工具来实现。
下面是一个简单的使用该工具进行数据备份的例子:
tar czvf - /root/code > /tmp/code_bak.tgz (将/root/code目录下的所有程序文件打包备份到/tmp/code_bak.tgz)
tar xzvf /tmp/code_bak.tgz /root/code (将备份的目录文件恢复到指定目录)
⑦ linux下备份一个目录下所有文件及目录,应该用什么命令
应该用cp
-rf
源目录
备份目录
cp是复制命令
-r
递归处理,指定目录下的文件和子目录一并处理
-f
强行复制,无论目标是否存在
知道指定后缀名的文件总个数命令:
find
.
-name
*.cpp
|
wc
-l
知道一个目录下代码总行数以及单个文件行数:
find
.
-name
*.h
|
xargs
wc
-l
linux统计文件夹中文件数目。
第一种方法:
ls
-l|grep
“^-”|wc
-l
ls
-l
长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)。如果ls
-lR|grep
“^-”|wc-l则可以连子目录下的文件一起统计。
grep
^-
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是
^d
wc
-l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
第二种方法:
find
./
-type
f|wc
-l
由于默认find会去子目录查找,如果只想查找当前目录的文件用
需要说明的是第二种方法会比第一种方法快很多,尤其是也统计子目录时。
(7)linux备份文件命令bak扩展阅读
linux
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991
年10
月5
日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
参考资料来源:网络:linux
⑧ 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下备份一个目录下所有文件及目录,应该用什么命令
1、bzip2 filename
//文件即会被压缩,并被保存为 filename.bz2。
2、gzip filename
//文件即会被压缩,并被保存为 filename.gz
3、tar 这个命令把大量的文件和目录打包成一个文件
-c 创建一个新归档
-f 当与-c 选项一起使用时,创建的tar 文件使用该选项指定的文件名;当与-x选项一起使用时,则解除该选项指定的归档
-t 显示包括在tar 文件中的文件列表
-v 显示文件的归档进度
-x 从归档中抽取文件
-z 使用gzip压缩tar 文件
-j 使用bzip2压缩tar 文件
(9)linux备份文件命令bak扩展阅读:
要创建一个使用tar和bzip2来归档压缩的文件,使用-j选项: tar -cjvf filename.tbz file
如果使用bunzip2 命令解压filename.tbz文件,则filename.tbz会被删除,以filename.tar代替。
要扩展并解除归档bzip.tar文件,输入命令: tar -xjvf filename.tbz
要创建一个用tar 和gzip归档并压缩的文件,使用-z选项: tar -czvf filename.tgz file
如果使用gunzip 命令解压filename.tgz文件,则filename.tgz会被删除,以filename.tar代替。
⑩ linux中bak文件没有全名
一般的bak文件指的是备份文件,常见的有数据库指定的备份文件会用bak当后缀名定义、文件包压缩打包备份的后缀名也习惯用bak去定义。这样让别人一看到bak文件就知道这应当是个备份文件。
2
/2
那么怎么打开.bak文件呢?
由于备份的工具或软件各不相同,一般不能直接双击打开*.bak文件,通常都是用什么软件备份的bak文件就用什么软件去解开。