今天开始安装linux,我用的是AS4U6,我的服务器有3块网卡,一块是8139,一块是8169,一块是marvell 88E8057,但是在安装过程中只找到两块网卡,到底是那块网卡没找到我不清楚。系统安装结束后,我用ifconfig -a命令查看也只发现了两块网卡,怎么知道是那块网卡没找到呢。
百度后,有人建议用dmesg查看,
Linux命令dmesg用来显示开机信息,kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。进入dmesg文件查看,发现是marvell没有发现。通过看这个文件,我以为是网卡没有发现,但是百度上有人建议用dmidecode,dmidecode以一种可读的方式dump出机器的DMI(Desktop Management Interface)信息。这些信息包括了硬件以及BIOS,既可以得到当前的配置,也可以得到系统支持的最大配置,比如说支持的最大内存数等。我用dmidecode找了一圈,也没发现关于网卡的信息。再次百度,有人建议用kudzu,kudzu是在linux系统启动时用来检测硬件的,一般在安装完成linux系统后,kudzu是在系统启动时自动检测硬件的。用ntsysv命令后,可看到许多系统启动自动的服务。如不需要即可用ntsysv命令关闭。
如果安装完Linux系统后,又添加了新的硬件,那么系统必须载入正确的驱动程序才可以使用它。Kudzu服务默认每次启动时都要运行,如果需要缩短启动时间,使用下面命令可以停止系统启动时的kudzu服务: # chkconfig kudzu off 如果要安装新的硬件,可以手动运行kudzu程序。 这个命令可以用于检查系统中网卡的型号等信息:kudzu --probe --class=network。我用这个命令后发现我的系统里看到了三张网卡,其中8139和8169的驱动已经安装,但是marvell 的驱动是unknown。这就说明了在dmesg里看到的是可以初始化的网卡信息,而全部的网卡信息在kudzu里才能反映出来。
后来发现用lspci也可以看到全部网卡。(car /proc/version uname -a uname -r 查看内核版本。netstat -npl chkconfig --list)
现在的问题是安装网卡驱动了,到Marvell网站上下载linux驱动install_v10.85.3.3.tar.bz2,用secureFX上传至root目录下,运行tar jxvf install_v10.85.3.3.tar.bz2进行解压,进入解压后的目录,发现了一个install.sh的文件,运行此文件即可安装网卡驱动,(再安装过程中我还碰到一个问题需要gcc编译器,因为我安装AS的时候没有选,所以无法编译,害得我又把AS重装了一遍并把开发工具包这个选项选上。)
全部安装结束后,用ifconfig -a 就可看到eth2这块网卡了。但是这块网卡还不能用,需要重启让kudzu识别并配置这块网卡。
AS添加新设备时一般使用两个步骤配置内核。首先,如果设备驱动程序作为内核模块,模块一定要被装载(如果还没有装载的话)。其次,配置设备驱动程序(和设备)让它可以使用诸如中断、IO地址、IO内存等这些资源,避免与其他设备发生冲突。
重启后,kudzu识别出了我添加了一块Marvell网卡并且中断引导过程,询问我是否进行配置,我开始配置,kudzu会根据设备生产商和产品ID在文件/lib/modules/kernel-version/modules.pcimap中寻找设备。(我理解的是我们刚才装的Marvell网卡驱动会在modules.pcimap中有一条记录,建立了网卡和内核模块的对应关系,但真正的网卡内核模块位于 /lib/modules/kernel-version//kernel/drivers/net/ 中,一般后缀是.ko,但我发现我的Marvell网卡内核模块是sk98lin,没有后缀,郁闷)。如果找到新pci硬件和与它相关的内核模块,在文件/etc/modprobe.conf中会建立一个别名,这个别名将模块驱动程序和它的角色联想在一起,我添加的Marvell网卡的内核模块是sk98lin,于是会在modprobe.conf文件中添加一个别名:alias eth2 sk98lin,表示将eth2这个别名和sk98lin内核模块联系在一起,令人自然知道sk98lin是网卡eth2的驱动。
Linux系统缺省并没有打开IP转发功能,要确认IP转发功能的状态,可以查看/proc文件系统,使用下面命令: cat /proc/sys/net/ipv4/ip_forward
如果上述文件中的值为0,说明禁止进行IP转发;如果是1,则说明IP转发功能已经打开。
要想打开IP转发功能,可以直接修改上述文件: echo 1 > /proc/sys/net/ipv4/ip_forward
把文件的内容由0修改为1。禁用IP转发则把1改为0。
上面的命令并没有保存对IP转发配置的更改,下次系统启动时仍会使用原来的值,要想永久修改IP转发,需要修改/etc/sysctl.conf文件,修 改下面一行的值: net.ipv4.ip_forward = 1 修改后可以重启系统来使修改生效,也可以执行下面的命令来使修改生效: sysctl -p /etc/sysctl.conf 进行了上面的配置后,IP转发功能就永久使能了。
Linux scp 命令
==================
scp 可以在 2个 linux 主机间复制文件;
命令基本格式:
scp [可选参数] file_source file_target
======
从 本地 复制到 远程
======
* 复制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
* 例子:
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music
scp /home/space/music/1.mp3 www.cumt.edu.cn:/home/root/others/music/001.mp3
* 复制目录:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
* 例子:
scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/
上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录
======
从 远程 复制到 本地
======
从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;
例如:
scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/
最简单的应用如下 :
scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2
[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .
可能有用的几个参数 :
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .
-C 使能压缩选项 .
-P 选择端口 . 注意 -p 已经被 rcp 使用 .
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址 .
Linux scp命令的使用方法应该可以满足大家对Linux文件和目录的复制使用了。