电脑技术学习

Linux下的各种备份方法汇总

dn001
一. 在单个服务器上的备份
最常见的备份方法是在命令行上用经典的备份程序tar .是最通用最简单也最有用的备份工具
# tar cvf  backup.tar /etc (备份整个etc 目录及下面的所有子目录和文件)
#gzip -9 backup.tar  (得到最大的压缩率)

你可以把备份后的backup.tar.gz转存到其它介质,CDR/CDRW光盘,私人信箱等

二. 跨服务器的备份
1. 利用ssh/scp功能直接把文件或目录从一台服务器拷贝到另一台服务器上。
参见文章荟萃中另一篇文章《如何不用密码进行ssh/scp》
2. 利用smbmount先mount另一台服务器上的Samba共享目录到这台机器的某目录下,直接进行cp操作。
 如:[root@sh/mnt]# smbmount //sh3/pub /mnt/sh3 -N
将服务器sh3上的Samba共享目录pub mount到服务器sh上的/mnt/sh3目录下面。且不提示密码
3.  利用NFS功能进行服务器间的备份,有一定程序的安全性问题,在此不多做介绍。

三. 备份到其它介质
你可以备份到磁带,ZIP drive , JAZ drive
1. 备份到磁带
假设你已经设置并安装好了磁带机,本人用的是HP SuitStore 500,外置,SCSI接口。
1. 查看磁带中的目录  tar tvf /dev/st0 
2. 查看磁带内容并输出到一个文件中 tar tvf /dev/st0 > stlist 
3.  备份档案  tar cvf /dev/st0 /etc 
 tar cvf /dev/st0 /etc/hosts /boot /etc/smb.conf 
4. 按指定的文件内容或目录释放出磁带中的相应文件
tar -T stlist -xvf /dev/st0 
 tar xvfz /dev/st0 /etc/ 
6. 附加个别文件到磁带后面
 tar -r /etc/hosts /etc/passwd -vf /dev/st0 
7. 从现有磁带中删除一个或几个文件
 tar --delete etc/hosts -vf /dev/st0 
8. 附加一个现有的tar文档到磁带后面 
 tar -A pamd.tar -vf /dev/st0
2. 备份到JAZ 驱动器
7.3 Getting a Zip drive to work 
(参见Redhat FAQ: http://www.redhat.com/support/docs/faqs/rhl_general_faq/FAQ.html )
There are excellent references in the ZIP HOWTOs at http://www.redhat.com/mirrors/LDP. 

Also, there is a Zip HOWTO at: 

http://www.linuxdoc.org/HOWTO/HOWTO-INDEX-3.html

In Red Hat Linux 6.1, there are a few extra steps needed to get a parallel port Zip drive to work: 

Edit your /etc/conf.modules and add: 

        alias parport_lowlevel parport_pc
        alias scsi_hostadapter ppa
        
Then log in as root and run: 
modprobe ppa 

Some people have had problems if they daisy chain a Zip drive off of a chain with a 
printer on it. Currently, we recommend that you use either the printer or the Zip drive. 

For more information, check www.torque.net/paraport 

If you are having problems with an IDE Zip drive, here is further information: 

First check and make sure there is a disk in the drive. Also, make sure you are mounting
 it as partition 4 instead of 1. An example would be hdc4. The reason for this is that 
the Macintosh uses partition 4 for its data partition and has problems if data is on 
another partition. 

3备份到 JAZ 驱动器
假定JAQ驱动器为SCSI接口,把JAZ驱动器当作SCSI链上的一个存储设备即可。
四. 跨操作系统进行备份
1. 把Linux服务器上的数据资料备份到windows 95/98机器上
 假定一台windows机器jephe有一完全读写共享目录 data ,且密码为 secret ,现希望把Linux上的
文件备份到这个共享目录下,则先把这个共享可写目录mount到Linux下,再做普通的cp操作

附:在Linux上对Novell服务器上的数据进行备份:(http://www.pcquest.com/linux/netware.asp) 
NetWare And Linux

Making your Linux server talk to NetWare servers and printers 

As almost every office-LAN has a NetWare server, your desktop client must be able to talk
 to NetWare. This article tells you how a Linux box can access files on a Novell server 
and print to a Novell print queue.

Linux, by default, uses the IP network protocol for network communication. However, Novell 
NetWare uses the IPX network protocol. As the Linux kernel has a completely new network 
implementation compared to other operating systems like Unix, it supports a range of 
non-TCP/IP protocols including the IPX protocol. Kernels 2.x onwards have built-in IPX 
support. The Red Hat Linux distributed on our CD-ROM has it too. The Linux kernel supports
 the IPX protocol only. It does not, yet, support protocols such as IPX/RIP, SAP, or NCP.

The first step is to configure your IPX interfaces. 

Login as root 
Type ipx_configure--auto_primary= on --auto_interface=on 
Wait for a minute and type cat /proc/net/ipx_interface. You should see something like: 
Network Node_Address Primary Device Frame_Type
000000E1 00A0C925164A Yes eth0 802.2 

     4.Type slist. You should see a list of the NetWare servers on your LAN. 

Known NetWare File Servers Network Node Address
D74_SERVER 00000D74 00000000001

If you don't, wait for a few minutes and retry. If the slist command displays a message 
like: ncp_connect: Invalid argument, then your kernel probably does not support IPX. 
Check that you have actually booted off the appropriate kernel. When you boot you should
 see messages about IPX and ncpfs in system startup messages. If the slist command does
 not list all of your fileservers, then you may need to use the manual network configuration 
method. Type cat /proc/net/ipx_interface. You should see something like:

At this point, your Linux box is setup for IPX networking. Check if your kernel has 
support for NetWare NCP file system. The default Red Hat kernel has NCP file system 
support. You simply have to load the ncpfs module /usr/sbin /lib/modules/2.0.32/fs/ncpfs.0. 
You can also add the line to your local file to load it automatically at the boot time.

Once that is done,

Login as root (only root can mount NetWare volumes). 
Type mkdir/netware to create a directory for mounting the NetWare volumes. 
Type ncpmount -S D74_SERVER -U user10 /netware. You will be prompted for a password for user10. 
At this point your server is mounted on /netware. The volumes are sub-directories under
 /netware. So the SYS volume would be /netware/sys and the DATA volume would be /netware/data. 
If you only want to mount a single volume, you can use ncpmount -S D74_SERVER -V sys -U user10 
/netware. This will mount only the SYS volume to /netware. 
When you finish using the Net-Ware volume, you can unmount usingncpumount/netware. 
Tip: You don't need to manually unmount NetWare volumes when you shutdown. 
When you want to share the mounted NetWare volume among other Linux users, you need to 
understand file permissions. The NetWare file system doesn't support user IDs and group 
IDs for directories. So all files and directories on the mounted directory have the 
permissions as the directory where it was mounted. For example, if you type ls -ld/netware, 
drwxrwxr-x 1 root root 512 Nov 24 1960 /netware is what you get.

So, all the NetWare files will have the above file permissions. 

If you want non-root users to mount NetWare volumes, ncpmount command must be Set Userid Root, 
so you would need to type chmod 4755 ncpmount

Simplifying mounting of volumes

There is another way of configuring NetWare mounts-by creating a .nwclient file in your home 
directory. This file contains details of temporary or user specific NetWare mounts that would 
be performed regularly. It allows you to store the details of mounts so that you can recreate 
them without specifying all details each time. Its format is quite straightforward:

# The first entry is the 'preferred server' entry and is
# used whenever you do not specify a server explicitly.
#
# User USER01 login to D74_SERVER fileserver with password 'password' D74_SERVER/USER01 password
#
# User CYBER login to the CYBER_DOC fileserver with no password. 
CYBER_DOC/CYBER - 

To activate these mounts you type ncpmount/netware to mount D74_SERVER with a login (say) TERRY
 under /NetWare directory. Note that this entry was chosen because no fileserver was specified 
in the mount command. Had we used ncpmount -S CYBER_DOC /netware, then it would mount CYBER_DOC 
with a login of CYBER under /NetWare directory. 

Since the passwords for your Novell accounts are not encrypted, you should protect them by 
typing chmod 0600 $HOME/.nwclient.

Printing to NetWare print queues

Once you are comfortable accessing your files, you can try printing to a Novell print queue. 

Use slist to check that you can see your Novell server. 
Type pqlist -S D74_SERVER -U USER01 to list the print queues on D74_SERVER. 
Type nprint -S D74_SERVER -U USER01 -q DMPQUEUE/etc/passwd. This would print the /etc/passwd 
file to the DMPQUEUE print queue on the D74_SERVER by logging in as USER01. If you have created
 your .nwclient file, then you can use nprint -q DMPQUEUE /etc/passwd instead. The server and 
login ID are taken from the .nwclient file. Ensure that the queue names are in capitals. 
Check your Novell print queue from a DOS client using PCONSOLE. You should see a printjob 
called No Description in the DMPQUEUE. 
Printing using nprint is tedious-first it requires you to print to a file and then submit 
using nprint. You can automate this by setting up a Linux print queue, which automatically
 sends it to the NetWare print queue. The following steps are a bit confusing and reading 
about Unix printing in the Printing HOW-TO would be beneficial. 

The following steps tell you how to configure a NetWare print queue for Red Hat Linux. 

Copy Netwareprint.tgz from the CD-ROM to the /tmp directory. 
cd /;tar xzvf /tmp/netwareprint.tgz. This will replace /usr/bin/printtool, 
/usr/lib/rhs/rhs-printfilters/master-filter, and /usr/lib/rhs/rhs-printfilters/nwprint, 
with the latest versions. 
If you aren't already in X Windows, start by typing startx. 
If the graphical control panel is not visible, start it by typing control-panel & in an XTerm. 
Click the printer icon in the control panel. You should see a list of printers currently 
configured for Linux. 
Click Add. A dialog box with various supported print queues appears. Select Novell 
Netware print queue. 
In Printer name, enter nwqueue. 
Enter D74_SERVER and DMPQUEUE for the NetWare server and print queue. Ensure that the queue 
names are in capitals. 
Enter the user name and password if needed. If you have a password, you must enter it here 
because it will not prompt you for a password during printing. 
In the filter type, select the appropriate printer type. If your laser printer supports 
postscript printing, please use Postscript printer. 
Click OK and you'll see a new printer called nwqueue in the list of printers. 
Select nwqueue from the list and click Test Print from the menu. Use a DOS client with 
PCONSOLE to check the DMPQUEUE. You should see a new print job in the queue. In case it 
doesn't work, try mounting a volume from the server D74_SERVER (on which the print queue resides). 
Now your printing should be set-up. To print /etc
/passwd, type lpr -Pnwqueue /etc/passwd at your prompt. 
To print from Netscape, use the command lpr -Pnwqueue to print. Alternatively, you 
could always print to a file and use nprint to print it manually. 
Utility commands

Recent versions of Volker's ncpfs package include a range of user and administration 
commands. The tools are built and installed as part of the ncpfs installation process. 
Though each has a detailed manual page, here is a summary of each from the IPX-HOWTO. 

ncopy (Network Copy): Allows efficient file copying using a NetWare function rather 
than a copy across the network. 
nsend (Network Send): Allows you to send messages to other users on a NetWare server.
nwbols (List Bindery Objects): Allows you to list the bindery contents of a NetWare server.
nwboprops (List Properties of a Bindery Object): Allows you to view the properties of a 
NetWare bindery object.
nwfsinfo (Fileserver Information): Prints summary information about NetWare server.
nwpasswd (NetWare Password): Allows you to change NetWare users password.
nwrights (NetWare Rights): Displays the rights associated with a particular file or directory.
nwuserlist (Userlist): Lists the users currently logged into a NetWare fileserver.
pqlist (Print Queue List): Displays the contents of a NetWare print queue.
slist (Server List): Displays a list of known NetWare fileservers.

NDS and Linux

A Linux distribution by Caldera features a range of commercially supported enhancements 
including fully functional Novell NetWare client support. The base distribution is the 
well-respected Red Hat Linux. Caldera has added its Network Desktop products to it. The 
NetWare support provides a fully featured Novell NetWare client built on a technology 
licensed from Novell. The client provides full-client access to Novell 3.x and 4.x 
fileservers, and includes features such as NetWare Directory Service (NDS) and RSA 
encryption. If you work within a NetWare 4.x or NDS environment, then the Caldera 
NetWare Client is the only solution available. You can obtain much more information 
and ordering details from the Caldera Web server at www.caldera.com/.

Useful documents

To get more information on IPX and NetWare support, read the IPX-HOWTO. This document 
presumes that you understand how to build a Linux kernel with the appropriate networking
 options selected, and that you know how to use the basic networking tools such as 
ifconfig and route. If you do not, read the NET-3-HOWTO (NET-3-HOWTO.html). Some other
 Linux HOWTO documents that might be useful are: The Ethernet-HOWTO (Ethernet-HOWTO.html), 
which describes the details of configuring an Ethernet device for Linux; the PPP-HOWTO 
(PPP-HOWTO.html), which explains the available IPX support for version 2.2.0d and later 
of the Linux PPP implementation.

Latest versions of these files can be obtained from sunsite.unc.edu/pub/Linux/docs/HOWTO/IPX-HOWTO. 
In your Linux box, the HOW-TOs are located in the /usr/doc/HOWTO directory in a compressed 
format. To view these files, type zless IPX-HOWTO.gz.

Divya Mahajan
 
五. 利用 Raid 1功能进行镜像备份。
把有重要数据的单独分区进行raid 1 镜像,用两个硬盘,对数据分区给以同样大小的柱面数和大小
附:在RedHat 6.0里设置RAID (http://www.tt.tzptt.zj.cn/linux/useskill/raid.htm) 
《Linux 公报》……让Linux更富魅力! 

目录:
资源 
RAID介绍 
设置RAID条带(RAID Strip) 
设置RAID镜象 
使用一个空闲的设备设置RAID 5 
注解 
你可以在这个地址 http://www.tcu-inc.com/mark/articles/Raid.html找到本文的最新版本。
--------------------------------------------------------------------------------
 
资源
http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/ 
/usr/doc/raidtools-0.90 
这些文章介绍了硬件细节,这部份内容在本文中不会涉及。 
这是DPT HOWTO的地址, http://www.ram.org/computing/linux/dpt_raid.html 

--------------------------------------------------------------------------------

RAID介绍
我建议你读一读jakob@ostenfeld.dk写的软件RAID HOWTO。很明显,他是个丹麦人。丹麦是
一个住着许多聪明人的世界上最好的国家。他的这篇HOWTO写得非常好,也许我根本就没有
必要写这篇文章。我之所以写这篇文章是因为文档一般来说都写得不大容易懂,当然现在情况
已有很大的改观。本文中介绍的安装是在RedHat 6.0上进行的,我认为在其他的Linux版本中
应该也能用。我什么时候会转去用Debian呢?我希望能尽快。 
什么是RAID?简单的说,它可以让你在几个硬盘上做些有趣的事。它可以让你把几个硬盘合并
起来,把数据分散地存放在这几个硬盘中。它可以提高往硬盘读写数据的速度,也可以在硬盘
上备份数据。这样即使你有一个硬盘坏了,你还可以从其他的硬盘中恢复所有的数据。你可以
读读软件RAID HOWTO中有关RAID级别的部份来更好的了解不同类型的软件RAID。 

为了试验本文中的例子,你需要设置一些小的分区。我建议你设置一个1G的扩展分区,然后在
这个扩展分区上建一些100兆的逻辑分区。请千万要记住,你只能在一个无关紧要的硬盘上进行
试验。如果你毁了这个硬盘上的数据,那是你自己的错。即使我的文章中写得不对,你也必需
对自己的所作所为负责。 


--------------------------------------------------------------------------------

RAID条带(strip RAID)
我只准备介绍如何设置RAID条带来存放数据。也就是说,我不会把操作系统的主要部份放在RAID
条带上。用RAID条带来存放整个系统会带来一些问题,所以我不准备这么做。 
简单的说,在Linux系统上设置RAID条带需要四个步骤。条带把数据存放在两个或更多的硬盘
(实际上是分区)上,这些数据有一半是在一个硬盘上,另一半在另一个硬盘上。这样可以提高
硬盘读写的速度,因为数据是从两个硬盘上同时读出来的。再说一次,你可以在HOWTO读到更
详细的内容。 

首先,我们要配置/dev/md0,然后我们要格式化这些分区,接下来要配置/etc/rc.d/rc.local
来激活RAID,最后要配置/etc/rc.d/rc.local来把这些设备安装到某个目录。 

具体步骤 

现在,我要使用一些小窍门。我认为大多数的低端用户并没有两个硬盘,所以我要使用同一个
硬盘上的两个分区而不是两个硬盘。建立一个有两个逻辑分区的扩展分区。这两个分区,
/dev/hda5和/dev/hda6,的大小必需一样。在同一个硬盘上的两个分区之间进行RAID条带是
没有任何意义的,即使是在同一个IDE控制器的不同硬盘上这么做也是没有意义的。请记住,
这只不过是个练习。 

在 /etc/raidtab中这么写: 
raiddev /dev/md0

          raid-level      0

          nr-raid-disks   2

          nr-spare-disks  0

          chunk-size     4

          persistent-superblock 1  

          device          /dev/hda5

          raid-disk       0

          device          /dev/hda6

          raid-disk       1

使用以下命令格式化分区 
mkraid /dev/md0

如果你在用"mkraid"命令时出了些问题,它应该会给出如何解决问题的提示。然后执行如下命令: 
mkfs -t ext2 /dev/md0

接着,你可以在"/proc/mdstat"文件中查raid的状态。 
cat /proc/mdstat

执行以下命令会在/etc/rc.d/rc.local中增加一行 
echo "raidstart /dev/md0" >> /etc/rc.d/rc.local

把这个命令执行一次。这可以为RAID设备建好目录并在/etc/rc.d/rc.local中增加一条命令。 
mkdir /RAID

echo "mount /dev/md0 /RAID" >> /etc/rc.d/rc.local 

如果你不想重启动计算机,你现在就可以激活RAID, 
raidstart /dev/md0

mount /dev/md0 /RAID

你可以用此命令来检查已经安装的目录。 
df


--------------------------------------------------------------------------------

RAID镜象
和以上的例子一样,我要使用同一个硬盘上的两个分区,并且我也只对数据分区进行镜象。 
  

首先,设置/dev/md0,然后格式化分区,接着配置/etc/rc.d/rc.local来激活raid,最后配置
/etc/rc.d/rc.local来把镜象设备安装到一个目录下。 

如下设置 /etc/raidtab 
raiddev /dev/md0

          raid-level      1

          nr-raid-disks   2

          nr-spare-disks  0

          chunk-size     4

          persistent-superblock 1

          device          /dev/hda5

          raid-disk       0

          device          /dev/hda6

          raid-disk       1

用以下命令格式化分区 
mkraid /dev/md0

如果你在用"mkraid"命令时出了些问题,它应该会给出如何解决问题的提示。然后执行如下命令: 
mkfs -t ext2 /dev/md0

接着,你可以在"/proc/mdstat"文件中查raid的状态。 
 

cat /proc/mdstat

执行以下命令会在/etc/rc.d/rc.local中增加一行 
echo "raidstart /dev/md0" >> /etc/rc.d/rc.local

把这个命令执行一次。这可以为RAID设备建好目录并在/etc/rc.d/rc.local中增加一条命令。 
mkdir /RAID

echo "mount /dev/md0 /RAID" >> /etc/rc.d/rc.local

如果你不想重启动计算机,你现在就可以激活RAID, 
raidstart /dev/md0

mount /dev/md0 /RAID

你可以用此命令来检查已经安装的目录。 
df


--------------------------------------------------------------------------------

使用空闲的分区设置RAID 5
使用一个空闲的设备来试验RAID 5是一件很酷的事。我们还是只用一个硬盘。一般来说,我都会
建立一个100M的逻辑分区来进行试验。如果你有一个1G的扩展的分区,那你就可以有10个逻辑
分区来进行各种试验。 
具体的步骤和以上介绍的镜象以及条带一样,把配置文件按以下修改。 

raiddev /dev/md0

        raid-level      5

        nr-raid-disks   7

        nr-spare-disks  1

        persistent-superblock 1

        parity-algorithm        left-symmetric

        chunk-size      32

        device          /dev/hda5

        raid-disk       0

        device          /dev/hda6

        raid-disk       1

        device          /dev/hda7

        raid-disk       2

        device          /dev/hda8

        raid-disk       3

        device          /dev/hda9

        raid-disk       4

        device          /dev/hda10

        raid-disk       5

        device          /dev/hda11

        raid-disk       6

   ### Also, let us have a spare device  

        device         /dev/hda12

        spare-disk     0


--------------------------------------------------------------------------------

注解
请使用/etc/rc.d/rc.local来安装raid设备,而不要用/etc/fstab。如果你想用/etc/fstab,
你尽可以试一试。这多半没有用,但有些人就是喜欢自己试试看(就象我一样)。 
这些文档以前写得挺难懂得,但这些HOWTO已经更新过了,这些工具也变得更好用了。现在,在
这些例子的帮助下,任何一个会用Linux的人都可以设置一个raid设备。希望这可以帮助降低RAID
服务器的价钱。 

如果你想更好的使用软件RAID,请用U2W SCSI控制器,象Adaptec控制器或其他的好品牌,如DPT,Mylex等。
对于只需要镜象而不考虑速度的比较便宜的raid,也可以使用IDE控制器。如果你想更进一步使用硬件RAID,
有几个公司支持Linux的硬件RAID。


--------------------------------------------------------------------------------

Mark在 The Computer Underground 公司当一个接待员(短裤,T恤),在800linux.com当专业人员
(西装领带)。在空余时间做一些志愿工作,比如写一些象本文一样的文章来帮助那些需要帮助的人。
本文使用emacs和ispell编辑。 


版权所有 ? 1999 NJLUG
出版于第45期《Linux公报》1999年9月 中文版第十一期

--------------------------------------------------------------------------------
其它RAID资料:
Stripe and Mirroring RAID under RedHat 6.0 ( http://www.tcu-inc.com/mark/articles/Raid.html )

标签: linux