linux备份文件夹的命令是什么?在Linux操作系统中,可用于备份文件夹的命令有两个:cp命令、mp命令,本文为大家详细介绍一下这两个命令,希望能够给你们带来帮助。
1、mp命令
Linux mp命令用于备份文件系统。
mp为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。
语法:
mp[-cnu][-0123456789][-b
<区块大小>][-B<区块数目>][-d<密度>][-f<设备名称>][-h<层级>][-s<磁带长度>][-T<日期>][目录或文件系统]或mp[-wW]
参数:
-0123456789 备份的层级
-b<区块大小> 指定区块的大小,单位为KB
-B<区块数目> 指定备份卷册的区块数目
-c 修改备份磁带预设的密度与容量
-d<密度> 设置磁带的密度,单位为BPI
-f<设备名称> 指定备份设备
-h<层级> 当备份层级等于或大于指定的层级时,将不备份用户标示为nomp的文件
-n 当备份工作需要管理员介入时,向所有operator群组中的使用者发出通知
-s<磁带长度> 备份磁带的长度,单位为英尺
-T<日期> 指定开始备份的时间与日期
-u 备份完毕后,在/etc/mpdates中记录备份的文件系统,层级,日期与时间等
-w 与-W类似,但仅显示需要备份的文件
-W 显示需要备份的文件及其最后一次备份的层级,时间与日期。
2、cp命令
Linux cp命令主要用于复制文件或目录。
语法:
①cp [options] source dest
②cp [options] source... directory
参数:
-a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容,其作用等于dpR参数组合
-d 复制时保留链接,这里所说的链接相当于Windows系统中的快捷方式
-f 覆盖已经存在的目标文件而不给出提示
-i 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答y时目标文件将被覆盖
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
-l 不复制文件,只是生成链接文件。
⑵ 如何在Linux服务器中实现数据实时同步及备份
科技时代,任何行业都离不开数据的分析以及统筹,如果掌握了最关键的数据及技术,那成功就指日可待,所以数据对于一个企业来说,就是最无形的财富,而一个企业的数据基本都有服务器保存及管理着,如何保证数据安全,实现数据同步及备份?诚恺科技小编就同大家一起来看看在Linux服务器中利用rsync配合inotify实现数据实时同步及备份的方法。
rsync:可以镜像保存整个目录树和文件系统。可以很容易做到保持原来文件的权限、时间、软硬链接等等。第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。
方案:起初用rsync进行数据备份是利用计划任务,定时执行一下命令实现rsync的同步,但最近开发这边修改比较频繁,看来需要实时同步备份来完善备份机制!所以需要利用inotify触发器来改善!达到一旦指定的位置有了新的变动就将其同步!
环境:
CentOS 6.4 64位
rsync-3.0.9
inotify-tools-3.14
说明:
10.10.1.6 (rsync+inotify)----------网站程序(/data0/htdocs/)
10.10.1.9 (rsync)------------------网站程序备份(/data0/htdocs/)
目的:
实现10.10.1.6的/data0/htdocs/目录下发生任何变动都将实时同步到10.10.1.9的/data0/htdocs/上(另,这两台都跑有keepalived+nginx,来实现出现故障自动切换的容灾,详细配置会在后面补上)
一、web服务器10.10.1.6 (rsync+inotify)
1、准备软件包
2、安装Rsync
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
建立密码认证文件
[root@ftp ~]# echo "111111">/etc/rsyncd/rsyncd.secrets建立密码认证文件
*其中111111可以自己设置密码,rsyncd.secrets名字也可以自己设置;
权限:要将/etc/rsyncd/rsyncd.secrets设置为root拥有, 且权限为600。
# chmod 600 /etc/rsyncd/rsyncd.secrets
3、安装inotify
1)、1234 tar-zxvf inotify-tools-3.14.tar.gz
2)、cdinotify-tools-3.14
3)、./configure--prefix=/usr/local/inotify
4)、make;makeinstall
4、创建rsync复制脚本
此项功能主要是将ftp端的目录/data0/htdocs/里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给10.10.1.9的/data0/htdocs里,下面是通过shell脚本实现的。
[root@web ~]# vim /root/shell/rsync.sh
[root@web ~]# chmod u+x /root/shell/rsync.sh
[root@web ~]# setsid /root/shell/rsync.sh &
#后台运行脚本,关闭shell终端继续后台运行
rsync.sh脚本加入开机启动项
# echo "/root/shell/rsync.sh" >> /etc/rc.local
防火墙开启rsync端口:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重启:
# /etc/init.d/iptables restart
二、备份服务器10.10.1.9(rsync)
1、准备工作
创建备份目录:
# mkdir /data0/htdocs
2、安装rsync(备份主机只安装rsync)
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
3、建立用户与密码认证文件
[root@backup ~]# echo "root:111111" > /etc/ rsyncd/rsyncd.secrets
[root@backup ~]# less /etc/rsyncd/rsyncd.secrets
root:111111
注意:
请记住,在10.10.1.6端建立的密码文件,只有密码,没有用户名;而在10.10.1.9里建立的密码文件,用户名与密码都有。
权限:要将/etc/rsyncd/rsyncd.secrets设置为root拥有, 且权限为600。
#chmod 600 /etc/rsyncd/rsyncd.secrets
4、建立rsync配置文件
[root@backup ~]# vim /etc/rsyncd/rsyncd.conf
启动rsync服务
# /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf
# ps -ef |grep rsync
Rsync服务加入开机启动项
# echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.local
防火墙开启rsync端口:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重启:
# /etc/init.d/iptables restart
完成,其实这个时候数据已经同步了!
测试一下:
由于/data0/htdocs/下涉及到一些公司信息,所以就以/data0/htdocs/tmp/为例
主机名可以区别是两台机器,里面的内容完全一直,连文件的属性都一样
再对里面修改一下试试,创建一个文件,然后删除user目录试试
⑶ 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 文件
(3)linux本地文件夹同步备份扩展阅读:
要创建一个使用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下备份一个目录下所有文件及目录,应该用什么命令
这里教大家如何用find、xargs和tar命令完成上面的功能。
建立一个测试环境,新建几个文件
# cd /tmp
# mkdir test
# cd test
# touch a.php b.js c.css 1.png
# ls
1.png a.php b.js c.css
接下来,通过find命令找出指定后缀的文件,为了支持多个后缀文件,find命令用到了正则匹配
# find . -type f -regex ".*.(php|js|css)"
./b.js
./a.php
./c.css
-regex后面的参数看起来很复杂,其实很简单,我来做个解释,双引号就不需要解释了吧
.*.(php|js|css) 简化一下就是.*.(php|js|css),其实就是对.()|做了下转义而已,开头的.*匹配除换行符外的任意字符(这个懂正则表达式的应该都明白)
找出文件后,就是如何备份这些文件了,tar需要指定源文件,怎么获取find出来的这些文件,并传给tar呢,xargs的作用就来了。看到下面xargs输出的是什么了吧,这个正是tar需要的。
# find . -type f -regex ".*.(php|js|css)" | xargs
./b.js ./a.php ./c.css
# find . -type f -regex ".*.(php|js|css)" | xargs tar czvf test.tar.gz
./b.js
./a.php
./c.css
下面看看文件是否备份成功了
# tar tzvf test.tar.gz
-rw-r--r-- root/root 0 2014-03-14 10:38 ./b.js
-rw-r--r-- root/root 0 2014-03-14 10:37 ./a.php
-rw-r--r-- root/root 0 2014-03-14 10:38 ./c.css
⑸ linux下备份一个目录下所有文件及目录,应该用什么命令
可以使用cp -rdir(目录)这个命令。cp是复制命令。-r 递归处理,指定目录下的文件和子目回录一并处答理。
通过shh连接上Linux主机,然后输入“cp -r www/root/”,回车即可备份root文件夹。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
⑹ linux下备份一个目录下所有文件及目录,应该用什么命令
这里教大家如何用find、xargs和tar命令完成上面的功能。
建立一个测试环境,新建几个文件
# cd /tmp
# mkdir test
# cd test
# touch a.php b.js c.css 1.png
# ls
1.png a.php b.js c.css
接下来,通过find命令找出指定后缀的文件,为了支持多个后缀文件,find命令用到了正则匹配
# find . -type f -regex ".*.(php|js|css)"
./b.js
./a.php
./c.css
-regex后面的参数看起来很复杂,其实很简单,我来做个解释,双引号就不需要解释了吧
.*.(php|js|css) 简化一下就是.*.(php|js|css),其实就是对.()|做了下转义而已,开头的.*匹配除换行符外的任意字符(这个懂正则表达式的应该都明白)
找出文件后,就是如何备份这些文件了,tar需要指定源文件,怎么获取find出来的这些文件,并传给tar呢,xargs的作用就来了。看到下面xargs输出的是什么了吧,这个正是tar需要的。
# find . -type f -regex ".*.(php|js|css)" | xargs
./b.js ./a.php ./c.css
# find . -type f -regex ".*.(php|js|css)" | xargs tar czvf test.tar.gz
./b.js
./a.php
./c.css
下面看看文件是否备份成功了
# tar tzvf test.tar.gz
-rw-r--r-- root/root 0 2014-03-14 10:38 ./b.js
-rw-r--r-- root/root 0 2014-03-14 10:37 ./a.php
-rw-r--r-- root/root 0 2014-03-14 10:38 ./c.css
⑺ Linux常用备份方法
用于备份的Tar
备份工具Tar是以前备份文件的可靠方法,几乎可以工作于任何环境中,Linux老用户一般都信赖它。 Linux中以.tar结尾的文件都是用tar创建的。它的使用超出了单纯的备份,可用来把许多不同文件放到一起组成一个易于分开的文件。tar是从Tape ARchiver备份工具起步的。包含在Linux中的GNU tar工具简便易用,包含了一个用来压缩的选项,且支持不断增加的备份。tar是一个命令行的工具,没有图形界面。使用Konsole或Kvt打开一个终端窗口,接下来是一个简单的备份命令: $tar cvf - /home > /temp/backup.tar
这个命令在/tmp目录中创建一个backup.tar的文件,/home目录中所有内容都包含在其中。接下来可以把tar文件拷贝到备份磁盘中。使用简单备份时,如果要使用压缩功能,改为下面命令: $tar czvf - /home > /tmp/backup.tgz
上面扩展名. tgz指出这是一个压缩文件。下一个例子可以用来直接备份到一个安装好的Jaz驱动器中,但这样做要确定有足够的空间: $tar czvf /mnt/jaz/backup.tgz - /home
对于一个磁带驱动器,使用设备名称: $tar czvf /dev/st0/backup.tgz - /home
如果有一个备份非常大,可以使用多卷选项。但是,这样做就不能使用压缩。当第一个磁盘或磁带填满后,tar将提示插入另一张: $tar cvMf /dev/st0/5mar2000.tar -home
要恢复备份使用下面的命令,以Jaz磁盘为例: $tar xzvf /mnt/jaz/5mar2000.tgz /home
表1列出了tar主要功能参数。此外还有很多可选参数,本文不再详述。
表1备份工具tar可以用crontab工具设置成基于时间的有规律地运行。例如,每晚2点把/home目录备份到SCSI磁带驱动器中,只要将下面语句添加到root的crontab中即可: 00 02 * * * tar cvf /dev/st0/homefiles.tar - /home
用于备份的Cpio
GNU cpio工具像tar一样从命令提示行启动程序。与tar相比cpio更复杂,但是也更为可靠。因为如果一个tar文件中某处有一个坏块,就不能对备份文件的其它部分进行访问,而使用cpio,只有坏块不能被访问。cpio创建一个称为-out mode的备份,备份存档中包含了文件和所有者、时间及访问许可等信息。cpio需要一个假定要备份的文件列表。创建列表的一个最方便的方法就是使用ls命令。例如,要把/home目录备份到SCSI磁带设备中,输入下面的命令: $ls /home | cpio -o > /dev/st0
也可以使用find命令。它包括许多选项可以用来消减被存档文件的数量。例如,下面的命令对所有在上一个2 4小时内修改过的文件进行存档: $find /home -mtime 1 -type f -print | cpio -o > /dev/st0
- in模式把文件从备份存档中解出来。下面的命令会恢复前两个备份例子中的所有文件: $cpio -i < /dev/st0
你也可以对cpio的备份进行计划,用crontab工具设置成基于任何时间的有规律地运行。例如,要在每晚2点把/ home目录备份到SCSI磁带驱动器中,把下面的语句添加到root的crontab文件中即可: 00 02 * * * ls /home | cpio -o > /dev/st0
⑻ linux 文件备份命令
Linux备份命令详解
(2008-11-0807:58:34)
转载
标签:
杂谈
分类:学习
vmp的常用方式:
1). 对于文件需要在只读方式下备份的文件,建议进入单用户:
# init s 或
>>>boot–fl s
2). 对操作系统各MOUNT点进行备份
3). # mount -a
# vmp -0uvf/dev/ntape/tape0_d1 /
# vmp -0uvf/dev/ntape/tape0_d1 /usr
# vmp -0uf/dev/ntape/tape0_d1 /var (如过var区是做为单独的文件子集也需要单独备份)
-f : 设备文件名 ( 比如 DDS tape driver)
-u : 更新/etc/vmpdates,用于增量备份
- v: 备份内容详细列表
- 0 : 零级备份
/dev/ntape0_d1: 系统执行完毕后,磁带停止在当前位置,可继续往下备份
/;/usr;/var : 各文件系统的MOUNT点
4). 其他说明
a、该命令方式对系统当前mounted的文件系统进行备份
b、备份级别说明
备份级别有0~9个级别,如果当前系统采用零级备份,当下一次采用5级备份时,系统仅将会对有变化的文件进行备份。
系统恢复常用命令--vrestore
恢复整个操作系统各文件系统的内容:
1). 准备工作:
a. 准备一个可用的新硬盘,容量大小和原盘基本相符。
b. 准备一套与备份系统相同版本的安装光盘
2). 用操作系统安装光盘启动到安装界面,调整新硬盘各分区大小后进入单用户。
* >>>bootdqa0 (dqa0 为SRM下的光驱设备号)
* 按正常安装步骤选着OK—》NEXT—》NEXT---》NEXT—NEXT---NEXT-CUSTOMIZEFILE SYSSTEM LAYOUT(调整分区大小)--》QUIT OR SHELL WINDOW。
* 注意:在调整新硬盘分区时一定要在引导块上选择ADVFS,并定义B区为SWAP
3). 创建操作系统的各文件系统。(如系统新盘为 dsk0)
mkfdmn/dev/disk/dsk0a root_temp (创建文件系统域)
mkfset root_temproot (创建文件子集)
mkfdmn/dev/disk/dsk0g usr_temp
mkfset usr_temp usr
mkfset usr_temp var(条件:在原系统中VAR为单独的文件子集)
注:在高级文件系统创建过程中,域名只要不和原来冲突,命名是任意的。但对文件子集命名方面最好和原来一致。(以避免不必要的修改工作)
4). 操作系统各文件系统的的恢复
#mount root_temp#root/mnt
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1 (恢复该文件系统上所有数据)
#cd /
#umount /mnt
#mount usr_temp#usr/mnt
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1
#cd /
#umount /mnt
#mount usr_temp#var/mnt (条件:VAR为单独的文件子集)
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1
-f: 设备文件名
-x: 恢复磁带当前备份数据段上的所有数据
- v: 备份内容详细列表
5). 如果恢复硬盘与备份盘在系统中设备名的不同(如:备份盘为dsk0,恢复盘为dsk1)需要做以下修改:
#mount root_temp#root/mnt
#cd /mnt/etc/fdmns
#cd root_domain
#rm *
#ln –s/dev/disk/dsk1a
#cd ..
#cd usr_domain
#rm *
#ln –s/dev/disk/dsk1g
#cd /mnt/etc
#vi sysconfigtab
将swapdevice=/dev/disk/dsk0b修改为swapdevice=/dev/disk/dsk1b
6). SHUTDOWN系统,在SRM下,用新盘引导
恢复文件系统中某些目录或文件:
#vrestore –if/dev/ntape/tape0_d1
(/) add vmunixgenvmunix (在系统根区备份中只恢复vmunix和genvmunix两个文件)
(/) extract (开始恢复)
对个别或若干个目录单独恢复同上
操作磁带机需要注意的几个问题
磁带机在备份过程中是分段记录的,在恢复时一定考虑磁带的位置问题。按上述备份例子,在数据带上一共创建了3段独立的数据备份信息(/;/usr;/var)。以下命令可调整数据带的位置。
#mt rewind (磁带机回卷磁带到初始位置)
需要单独恢复/usr文件系统或个别文件信息:
#mt rewind
#mt fsf 1 ( 跳过第一个数据备份段 / )
如果以上需求发生在/var上则:
#mt rewind (跳过前两个数据备份段)
#mt fsf 2
⑼ 大家怎么备份自己的linux
由于Linux系统本身的优越性,系统的备份和还原还是比较容易的。主要表现在以下方面:
1.Linux系统所有的数据都以文件的形式存在,所以备份就是直接拷贝文件;硬盘分区也被当成文件,所以可以直接克隆硬盘数据。
2.Lnux系统自带很多实用工具,比如tar、dd、rsync等,备份还原系统不需要购买或下载第三方软件。
3.Lnux系统在运行时其硬盘上的文件可以直接被覆盖,所以还原系统的时候不需要另外的引导盘。(当然,系统完全挂掉到无法启动这种情况还是需要另外的引导盘的。)
备份Linux系统的策略有很多,比如使用dd命令直接克隆硬盘分区:
复制代码
代码如下:
sudo dd if=/dev/sda1 of=/dev/sdb1
或者,使用tar将硬盘上的文件打包:
复制代码
代码如下:
cd /sudo tar cvpzf backup.tgz --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/backup.tgz /
还原系统的命令是:
复制代码
代码如下:
sudo dd if=/dev/sdb1 of=/dev/sda1或tar xvpfz backup.tgz -C /
但是我最终选择的是rsync命令。rsync是一个非常优秀的文件同步工具,从它的名字可以看出,它支持远程同步。当然,在备份我的桌面系统时,只需要用到它的本地同步功能就行了。之所以选择rsync,是因为它具有如下优点:
在备份还原过程中,可以保存文件原有的时间、权限、软硬链接等信息;
首次备份时,需要复制所有文件,但是再次备份或还原系统时,只需要复制修改过的文件。
关于rsync的使用方法,其主要参考文档是man rsync,另外,rsync也可以作为守护进程运行用来建立文件备份服务器,可以参考文档man rsyncd.conf。
桌面系统备份实战
对于我的桌面系统,我选择的备份策略是使用rsync命令将硬盘上的所有文件(当然要排除/proc和/sys目录下的内容)复制到U盘上。首先使用df -lh命令查看一下我电脑的系统占多大空间,如下图:
从上图可以看出,根目录所在的分区占用了14G,而/boot目录所在的分区才占用100多M。其实Linux系统本来不用这么臃肿,只是因为我安装了太多的软件包,比如一整套的texlive啊什么的,才占用了这么多的空间。不过这都不是事儿,反正现在U盘也便宜,所以找个32G的USB 3.0的U盘来备份我这个系统,肯定是很轻松愉快的。
新U盘插到电脑上会被自动识别,使用不带参数的mount命令可以查看U盘的设备文件和挂载路径,使用fdisk命令了解U盘的大小和分区情况。如下图:
整个U盘分成一个区我没什么意见,不过我不喜欢它的vfat文件系统,万一碰到超过4G的巨型文件怎么办?so,先umount它,然后使用mkfs.ext3为它重新建立一个文件系统,如下图:
再把U盘mount起来,挂载的路径为/media/youxia/usb。如下图:
然后,可以开始备份了,我备份的命令是:
复制代码
代码如下:
sudo rsync -Pa / /media/youxia/usb/backup_20141216 --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/mnt/* --exclude=/tmp/*
如下图:
下图是备份完成后的效果,可以看到整个备份过程花了59分多钟,U盘被占用15G,如下图:
如果哪天系统再崩溃了的话,只需要使用sudo rsync -Pa /media/youxia/usb/backup_20141216 /即可恢复系统。