Linux使用小知识

发表于:2007-07-04来源:作者:点击数: 标签:
自己整理一下,放上来... 从软盘启动grub 制作启动盘后可以用软盘启动引导硬盘上的操作系统插入制作好的启动软盘,进入BIOS设定软盘启动。软盘启动成功后就会进入grub的命令行模式 grub> 要启动一个操作系统,首先指定引导哪个分区上的系统,例如要引导指第

自己整理一下,放上来...

从软盘启动grub

制作启动盘后可以用软盘启动引导硬盘上的操作系统  插入制作好的启动软盘,进入BIOS设定软盘启动。软盘启动成功后就会进入grub的命令行模式  

grub>  

  要启动一个操作系统,首先指定引导哪个分区上的系统,例如要引导指第一个硬盘上的第一个分区的操作系统,先键入  

grub>root  (hd0,0)  

  接着如果要启动的是Windows系统,键入  

grub>chainloader  (hd0,0)+1  

  注意(hd0,0)要随着硬盘和分区的不同而改变数字。  如果要引导Linux或其他系统,应键入  

grub>kernel  (hd0,0)/boot/vmlinuz  root=/dev/hda1  

  注意hda1参数也要随着硬盘和分区的不同而改变,如从第二个硬盘的第一个分区引导则用hdb1。  

  最后敲入boot就可以启动系统了。  

  在任何时候不能确定命令或者命令的参数都可以按Tab获得相关的帮助。用上下键可以获得命令的历史记录。  

其实这些命令就是menu.lst的启动描述,您也可以根据那些描述来自己键入启动命令,最后敲入boot就可以引导系统了。

如何实现多网卡bonding

使用多块网卡虚拟成为一块网卡,具有相同的IP地址。这项技术其实在sun和cisco中已经存在,分别称为Trunking和etherchannel技术,在Linux中,这种技术称为bonding。  ??因为bonding在内核2.4.x中已经包含了,只需要在编译的时候把网络设备选项中的Bonding  driver  support选中就可以了。

??然后,重新编译核心,重新起动计算机,执行如下命令:

??ismod  bonding

??ifconfig  eth0  down

??ifconfig  eth1  down

??ifconfig  bond0  ipaddress

??ifenslave  bond0  eth0

??ifenslave  bond0  eth1

??现在两块网卡已经象一块一样工作了.这样可以提高集群节点间的数据传输.

??你最好把这几句写成一个脚本,再由/etc/rc.d/rc.local调用,以便一开机就生效.

??bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两三块100兆网卡作bonding,可大大提高服务器到交换机之间的带宽.但是需要在交换机上设置连接bonding网卡的两个口子映射为同一个虚拟接口。

如何实现为一个网卡绑定多个IP地址?

Linux的网络设备配置文件存放在/etc/sysconfig/network-scripts里面,对于以太网的第一个网络设备,配置文件名一般为  ifcfg-eth0  如果需要为第一个网络设备绑定多一个IP地址,只需要在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件,内容样例为:  DEVICE="eth0:0"

IPADDR="211.100.10.119"

NETMASK="255.255.255.0"

ONBOOT="yes"

  其中的DEVICE为设备的名称,IPADDR为此设备的IP地址,NETMASK为子网掩码,ONBOOT表示在系统启动时自动启动。

  如果需要再绑定多一个IP地址,只需要把文件名和文件内的DEVICE中的eth0:x加一即可。LINUX最多可以支持255个IP别名。

如何根据NETBIOS名字查找计算机IP

使用nmblookup  test可以查找到同个网络内NETBIOS名字为test的机器的IP,如果这个机器有多个IP,也会一并列出。

如何知道某个端口现在运行什么监听程序

当我们用netstat  -an的时候,我们有时候可以看到类似的输出:  udp  0  0  0.0.0.0:32768  0.0.0.0:*

但是查找/etc/services又没有这个端口的相关说明,怎么办呢?这个是不是黑客程序?有没有办法查看究竟什么程序监听在这个端口?

使用lsof  -i  :32768就可以看到:

COMMAND  PID  USER  FD  TYPE  DEVICE  SIZE  NODE  NAME

rpc.statd  603  root  4u  IPv4  953  UDP  *:32768

rpc.statd  603  root  6u  IPv4  956  TCP  *:32768  (LISTEN)

原来是rpc的程序。

使用lsof  -i  :port就能看见所指定端口运行的程序,同时还有当前连接。

如何监视某个tty

javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)"> 你可以把  /etc/inetd.conf中  ??#  Use  this  one  instead  if  you  want  to  snoop  on  telnet  users  (try  to  use  this

??#  for  ethical  purposes,  ok  folks?)  :

??telnet  stream  tcp  nowait  root  /usr/sbin/tcpd  /usr/sbin/in.telnetsnoopd

??1.把原本的in.telnetd换成上述的in.telnetsnoopd,

??2.然后激活  ttysnoops  &

?3.mkdir  /var/spool/ttysnoop

??4.重新激活  inetd

??用法就是  ttysnoop  tty*,这时它会要你输入root的密码,按  ctrl+7可以终止,不过监视人家时要小心不要被发现了哟。这两个窗口是一样的,你还可以控制他的键盘  (自己先练习一下,呵呵...)

如何恢复iptables的默认设置

/usr/local/sbin/iptables  -P  INPUT  ACCEPT  /usr/local/sbin/iptables  -P  FORWARD  ACCEPT

/usr/local/sbin/iptables  -P  OUTPUT  ACCEPT

#

#  reset  the  default  policies  in  the  nat  table.

#

/usr/local/sbin/iptables  -t  nat  -P  PREROUTING  ACCEPT

/usr/local/sbin/iptables  -t  nat  -P  POSTROUTING  ACCEPT

/usr/local/sbin/iptables  -t  nat  -P  OUTPUT  ACCEPT

#

#  flush  all  the  rules  in  the  filter  and  nat  tables.

#

/usr/local/sbin/iptables  -F

/usr/local/sbin/iptables  -t  nat  -F

#

#  erase  all  chains  that's  not  default  in  filter  and  nat  table.

#

/usr/local/sbin/iptables  -X

/usr/local/sbin/iptables  -t  nat  -X'  

GRUB多重启动管理器

什么是grub  

  grub  是一个多重启动管理器。grub是GRand  Unified  

Bootloader的缩写,它可以在多个操作系统共存时选择引导哪个系统。它可以引导的操作系统包括Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows  

NT,Windows2000。它可以载入操作系统的内核和初始化操作系统(如Linux,FreeBSD),或者把引导权交给操作系统(如Windows  98)来完成引导。

如何允许非root用户mount光盘和软盘

可以通过修改文件系统配置文件:/etc/fstab来使非root用户使用光盘和软盘,将/etc/fstab中关于fd0及cdrom的内容修改为如下所示:    /dev/fd0  /mnt/floppy  auto  noauto,user  0  0

  /dev/cdrom  /mnt/cdrom  iso9660  noauto,ro,user,unhide  0  0

  你可以通过察看/etc/mtab或使用不带参数的mount命令来察看哪些文件系统被加载及它们的加载参数是什么。

如何限制某个用户只能FTP不能TELNET?

很简单,修改此用户的shell即可。打开/etc/password,查找要修改的用户所对应的记录,如:  floatboat:x:500:500::/home/floatboat:/bin/bash

  要禁止floatboat用户登录,只需要把此行中的“/bin/bash”改为/usr/bin/passwd即可。这样用户telnet上服务器只能修改密码,而无法直接控制台。

  当然,如果你希望连密码都不允许此用户修改,只要把shell改为“/sbin/nologin”即可。

怎么样做到限时登录

通过以下三个脚本程序调用at和系统维护功能即可实现限时登录:  在指定的时间执行该脚本,将在/etc下生成一名为nologin的文件,登录程序在执行时会自动判断此文件是否存,如果存在将不允许用户登录,内容为:

vi  /sbin/login.denied

echo  "  Login  Denied  "  >  /etc/nologin

chmod  700  login.denied

在指定的时间执行该脚本,删除/etc/下的nologin文件以允许用户登录,内容为:

vi  /sbin/login.allowed

if  [  -f  /etc/nologin  ];  then

rm  /etc/nologin

fi

chmod  700  login.allowed

编写一个限制时间的脚本,内容为:

vi  /sbin/login.rollback

if  [  -f  /sbin/login.denied  ];  then

at  -f  /sbin/login.denid  22:00

fi

if  [  -f  /sbin/login.allowed  ];  then

at  -f  /sbin/login.allowed  8:00

if

chmod  744  /sbin/login.rollback

创建完成以后,把/sbin/login.rollback脚本放进crontab中,在每天凌晨执行:

crontab  -e

#  roll  login  script

00  1  *  *  *  /sbin/login.rollback

此种设置的功能是:从晚上10:00到第二天早上8:00静止非root用户登录,显示为系统维护状态。

lilo.conf配置实例

有了这些基础知识,我们可以很容易地按照自己的意图配置LILO。请看一个lilo.conf文件的例子:  

  boot=/dev/hda          #将LILO安装在MBR。LILO作为主引导管理器  

  message=/boot/message      #注释为/boot/message  

  compact              #产生一个更小的“map”文件  

  map=/boot/map          #指定“map”文件为/boot/map  

  install=/boot/boot.b  

  password=zhoudi          #设置口令  

  vga=normal            #80x25文本模式  

  linear              #使用“linear”地址  

  prompt              #提示用户键盘输入  

  timeout=50            #超时时长为5秒  

  default=dos            #缺省引导label为dos的操作系统  

  #设定Linux  

  image=/boot/vmlinuz-2.0.34-1    

  #设置Linux核心引导映像  

    label=linux          #标识为linux  

    root=/dev/hda1        #设置根文件系统  

    read-only          #LILO以只读方式载入根文件系统  

  #设定MS-DOS或Windows  95  

  other=/dev/hda2          #DOS分区为第一个IDE硬盘的第二分区  

    label=dos          #标识为dos  

    table=/dev/hda        #主设备为第一个IDE硬盘  

  #设定SCO  UNIX  

  注意:SCO分区必须设为活动(active)分区并将LILO安装在MBR上。  

  other=/dev/hda3  

    label=sco  

    table=/dev/hda  

  这个例子中,LILO是作为主引导管理器来管理机器上所有操作系统的。LILO也可作为二

级引导管理器,这只要将“boot”参数改为根分区就可做到。例如:  

  boot=/dev/hda1  

  以这种方式使用LILO时,Linux根分区必须用DOS或Linux的fdisk程序将其设置为活动分区,

并且这种方式只对硬盘主分区(不是扩展或逻辑分区)有效。  

  LILO还可以启动第二个以上的操作系统。在我的机器上有两块希捷硬盘,一块硬盘为8.4GB,

另一块为1.2GB,都以LBA模式接在主IDE口上。8.4GB跳线为主盘,1.2GB跳线为从盘,Linux

核心很容易地就将它们辨认出来并能正常使用,1.2GB的硬盘上安装了MS-DOS  6.22。笔者是

这样设置lilo.conf的:  

  disk=/dev/hda  

    bios=0x80        

  #由于IDE硬盘存在双硬盘问题,所以当启动DOS系统时,会提示“无系统盘或系统盘错!”,需修改程序如下。  

  disk=/dev/hdb  

    bios=0x81  

  boot=/dev/hda  

  map=/boot/map  

  install=/boot/boot.b  

  linear  

  prompt  

  timeout=50  

  default=dos  

  image=/boot/vmlinuz-2.2.11-1  

    label=linux  

    root=/dev/hda1  

    read-only  

  other=/dev/hdb1  

    label=dos  

    map-drive  =  0x80  

      to  =  0x81  

      map-drive  =  0x81  

      to  =  0x80  

  #交换两硬盘主、从顺序  

    table=/dev/hdb  

  配置好lilo.conf文件后,在root账户下执行lilo命令,新的LILO就被载入系统。

上面第一个例子执行结果如下:  

  #lilo  

  Added  linux  

  Added  dos*        

  Added  sco  

  (注:带*号的表示其为缺省操作系统)

Linux系统设置备份

备份是一项重要的工作,但是很多人没有去做。一旦由于使用不当造成数据丢失,备份就成了真正的救命者。本文将讨论设置备份的策略和如何选择备份介质,并介绍用于备份的tar和cpio工具。  设置备份策略  

  设置备份策略和计划可以增加进行备份的可能性。备份开始前,要确定备份哪些数据、备份的频率和使用什么样的介质进行备份。备份的时候,应该进行完全备份。  

  备份通常安排在空闲时间进行。在大多数系统中,由于此时用户数量最少,所以打开的文件也最少。由于备份要占用一些系统资源,运行备份时用户会发现系统反应迟钝。  

  如果Linux计算机只有一个使用者,可以一个星期或一个月对整个系统备份一次。如果有关键性的文件,就应该有计划地把这些文件拷贝到一个可移动的磁盘中。  

  备份之前,首先要确保正确地设置备份设备。大多数磁带备份系统在安装时可以发现是否正确。系统启动后,打开一个终端窗口并且输入下面的命令:  

  $dmeg  |  less  

  滚动列表,并从中寻找你的磁带系统的驱动。如果没有发现,就需要加载一个组件驱动程序。  

  如果运行Linux服务器,就要制定一个备份计划,但这并不意味着每天要对所有的东西都备份。系统中只有一部分东西需要每天备份,下面列出需要备份的项目:

  用户文件  每天都要对/home目录中的用户文件进行备份。  

  配置文件  /etc和/var目录中的配置文件不需要频繁备份,每个星期或每月备份一次即可,主要取决于配置更改的频繁程度。  

  程序文件  /usr和/opt目录中的程序文件很少发生变化,安装后做一次备份即可。通常情况下,程序文件可方便地从原始安装盘中恢复。  

选择备份介质  

  把备份存到哪里有多种选择。下面介绍一些可选择的备份介质:  

  软盘  如果要把重要文件快速备份,或者将其带到家中,这时软盘仍旧是一种可选的备份介质。  

  光盘写入器  随着光盘写入器变得越来越可靠,价格也越来越低,光盘本身也非常便宜。选用此项的一个好处是光盘不容易被损坏,它备份的可靠性很高。  

  使用光盘写入器有两点不利因素:它们速度较慢,并且只能保存大约650MB。  

  可重写的光盘  可重写光盘驱动器比光盘写入器要贵得多,工作方式与其类似。但是,这些光盘是可被重写的,并且它比只能写一次的光盘贵许多。可重写光盘其它的特性都与光盘写入器类似。  

  Jaz和Zip  Zip驱动器很流行,已经成为许多PC机的标准配置,同时它的磁盘和驱动器也都不贵。它一张磁盘可容纳100MB的数据,是一种用于快速、可移动备份的很好选择。  

  Jaz磁盘可以容纳上G字节的数据,并且使用更先进的技术以获得更好的表现。Jaz驱动器和Jaz磁盘都比较贵。  

  Jaz和Zip的缺陷是都容易损坏,并且保持时间相对要短。  

  磁带机  磁带备份设备是大多数Linux服务器的标准配置。磁带是可靠的,并且很少出现错误,它几乎比其它介质存储时间都要长。  

  对于点对点工作组网络和中型网络,Travan和高端数字音频磁带(DAT)通常是最好的选择。Travan驱动器经过压缩可以处理8GB数据,这对于具有5-10个PC机的小型网络来说足够了。DAT驱动器有更好的表现,可以处理24GB的数据。DAT驱动器比Travan驱动器昂贵,但它磁带的价格要比Travan  QIC磁带卷便宜。  

  高端磁带  选择高端磁带可能是相当贵的。与Travan或DAT相比,这种驱动器有更大的容量和更高的速度。三种广泛使用的驱动器类型是:Sony  Advanced  Intelliget  Tape  (  AIT  )  、Quantum  Digital  Linear  Ta  p  e  (  DLT  )和Exabyte  Mammoth  8mm。它们最少可以容纳20GB的不压缩数据,并且具有更高的数据传输能力。  

用于备份的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主要功能参数  

  参数        描述  

  -A      附加到另一个tar存档的后面  

  -C      创建一个新的tar存档  

  -d      找出tar存档和文件间的差别,用于一个文档的验证  

  --delete  从存档删除文件,磁盘备份不能选用  

  -r      把文件附加到tar存档的后面  

  -t      列出tar存档的内容  

  -u      只把比tar文档中的文件新的文件附加到存档中  

  -x      解开一个tar存档  

  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创建一个称为copy-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  

  copy  -  in模式把文件从备份存档中解出来。下面的命令会恢复前两个备份例子中的所有文件:  

  $cpio  -i  <  /dev/st0  

  你也可以对cpio的备份进行计划,用crontab工具设置成基于任何时间的有规律地运行。例如,要在每晚2点把/  home目录备份到SCSI磁带驱动器中,把下面的语句添加到root的crontab文件中即可:  

  00  02  *  *  *  ls  /home  |  cpio  -o  >  /dev/st0

原文转自:http://www.ltesting.net