2016年3月30日 星期三

suse 11 (轉發)


http://blog.sina.com.cn/s/blog_71d9aee401011nuj.html
1. zypper 使用
 sudo zypper ar http://download.opensuse.org/distribution/11.4/repo/oss/ opensuse
(如果设置了代理 export http_proxy=http://proxy:port,用sudo -E)

 sudo zypper lr 列出所有库
sudo zypper rr <库名> 删除指定库
 sudo zypper refresh 更新库
 sudo zypper install <package_name>
 sudo zypper search <package_name> 
 sudo zypper update 更新
 sudo zypper pacth 打补丁

2. ssh server 设置
安装ssh包
yast -> firewall 中添加ssh server服务

3. 查看已经安装的文件属于哪个包: rpm -qf  /usr/lib/libpthread.a
   查看已经安装的包有哪些文件: rpm -ql <packagename>
   查看rmp包有哪些文件: rpm -qlp <packagename.rpm>

4. suse linux 64bit 开发32位程序需要安装下面的包:
   libstdc++43-devel-32bit
   glibc-devel-32bit (包含 32bit libpthread.a)
   gcc43-32bit

 5. 对所有文件包含子目录下的文件做dos2unix
find . -type f | xargs dos2unix

6. route 查看缺省网关地址
route | grep default

7. nslookup -> server 查看DNS服务器

8. file libACE.so.6.1.1
libACE.so.6.1.1: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
查看动态库是32位还是64位
(静态库先 ar -x libACE.a解包出***.o文件,然后再用 file ***.o 看)

9. nm -D libACE.so.6.1.1  查看动态库中的函数
   ar -t libACE.a 查看静态库中的.o文件

10.
使用source命令或者.(点号)来激活子shell中的变量使其能在父shell中使用
$source ./test.sh 或
$. ./test.sh

11. 二进制文件比较
cmp -l file1 file2 

12. tcpdump 抓包
tcpdump -i eth0 port 8000 -w test.cap
tcpdump -i eth0 udp port 8000 -w test.cap 抓UDP目的端口8000
tcpdump -i eth0 udp portrange 8000-8100 -w test.cap 抓指定端口范围的包
tcpdump -i eth0 port 8000 直接显示
tcpdump -s0 -i eth0 port 8000 默认的话 tcpdump 只抓取每个包的部分数据。 参数 -s snaplen 就是控制抓取每个数据包的长度, -s0 表示抓取全部的数据包

tcpdump -s0 -i vlan2 udp -c 10000000 -w /dev/shm/all.cap 只抓10000000个UDP包

13. 查看硬件相关信息
lspci 查看PCI总线设备,USB控制器,以太网控制器等信息
cat /proc/cpuinfo 查看CPU信息

14.修改系统socket buffer大小
修改/etc/sysctl.conf
net.core.rmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_default = 16777216
net.core.wmem_max = 16777216

使修改生效
sysctl -p /etc/sysctl.conf

查看是否生效
cat /proc/sys/net/core/rmem_default
cat /proc/sys/net/core/wmem_default

15.
grep "packet loss" packets.log 在指定文件中查找指定字符串的行
grep -v "packet loss" packets.log 在指定文件中查找不包含指定字符串的行

16.
统计网卡的发包速率
sar -n DEV 1 10 每秒采集一次,采集10次的求平均

17.
linux下查看进程的线程信息
ps -Lf pid

查看进程的线程数
ps -Lf pid|wc

查看进程以及其线程的优先级
top -H -p <pid>

18. 查看Suse Linux版本
# cat /etc/SuSE-release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 1

19. mount 光驱
mount /dev/cdrom /mnt/cdrom -o loop

20. 查看网卡固件和驱动版本
# ethtool -i eth0
driver: be2net
version: 4.1.450.7
firmware-version: 4.1.450.7
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: no

查看网卡速率
# ethtool eth0
Settings for eth0:
        Supported ports: [ ]
        Supported link modes:  
        Supports auto-negotiation: Yes
        Advertised link modes:  Not reported
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Speed: 4000Mb/s
        Duplex: Full
        Port: Other
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: g
        Link detected: yes

21. 查看CPU所有core的实际频率
# egrep -i Hz /proc/cpuinfo

22. 查看进程的内存使用情况
# pmap <pid>

23. 查看各个中断每秒钟的调用次数
sar -I XALL 1

rpm 教學

寫下在Linux中如何安裝軟體,我們知道在windows下安裝軟體只要一直點下一步就ok了.但是在我們Linux系統中安裝軟體就沒有像在windows下那麼簡單了,不過學會了如何在Linux下怎麼安裝軟體包,也不會覺得多麼難了.呵呵!雖然安裝軟體沒有在windows下那麼簡單,但是論卸載的話,windows就風馬牛不相及了.我們知道在windows下裝軟體有註冊表,還有一大堆的文件,雖然指定了安裝目錄,但是還會在其他目錄下建些文件,找都不好找,有時卸載也卸不幹凈.但是在Linux下,首先他沒有註冊表,二是只要將安裝的目錄一刪,就將安裝的軟體徹底刪除乾淨了.說了那麼多,下面來看看如何在

Linux下如何安裝軟體包的吧!
Linux中,軟體安裝大體分為兩種:一是基於源碼包進行編譯安裝的,二是基於二進位格式的軟體包進行安裝.前者管理不方便;後者呢,管理簡單,但是製作比較繁瑣所以呢,這種軟體包的更新速度就落後於源碼包了.

格式:rpm –i /path/to/rpm_package:其實就是選項後面跟rpm軟體包的絕對路徑.不過安裝時常是三個選項一起使用,如:
h是以#號來表示軟體包完成的進度的,一個#號代表完成2%.
#rpm –ivh –nodeps /ptah/to/rpm_package:在安裝的時候我們可能遇到依賴關係,這時我們就可以使用長選項—nodeps忽略依賴關係,強行安裝了.當然也可能遇到版本衝突等問題,這時再加個長選項
—force就可以忽略衝突,強行安裝了.不過不建議這麼使用,這樣可能使安裝的軟體無法正常使用.
mso-fareast-font-family:宋體;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: Calibri;mso-hansi-theme-font:minor-latin">卸載:

通常也是組合選項進行使用的.升級有兩種:
rpm –q name ,常用的組合有下面這些:



那麼首先來說下基於二進位格式的軟體包的安裝吧!一般來說二進位軟體包有兩種,一種是rpm包,另一種是deb包.這裡我們主要將rpm包的安裝.其實rpm是一種軟體包管理工具,可以用來安裝、卸載、升級、查詢、校驗軟體包.下面就挨個解說下:
mso-fareast-font-family:宋體;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: Calibri;mso-hansi-theme-font:minor-latin">安裝:

#rpm –ivh /path/to/rpm_package:其中v是設定顯示安裝的詳細信息的,也可以用兩個v,那樣顯示的信息會更詳細,一般最多使用三個.


格式:rpm –e name:選項後跟安裝的軟體名就可以卸載了.同樣,在卸載的時候也可能遇到依賴關係,這時候我們也可以使用長選項—nodeps忽略依賴關係,強行卸載.不過這可能使依賴此卸載的軟體的軟體無法正常工作.
mso-fareast-font-family:宋體;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: Calibri;mso-hansi-theme-font:minor-latin">升級:

#rpm –Uvh /path/to/rpm_package :這種是:沒有老版本則安裝,有老版本則升級;
#rpm –Fvh /path/to/rpm_package:這種是:沒有老版本,無法升級,也不安裝,有老版本則升級;
mso-fareast-font-family:宋體;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family: Calibri;mso-hansi-theme-font:minor-latin">查詢:
格式:
rpm -qa name:查詢當前系統上所有安裝后的軟體包. 
rpm -qa *bash:可以使用通配符通配查詢. 
rpm -qi name:顯示軟體包的摘要信息. 
rpm -ql name:顯示軟體包在當前系統上都生成了那兒些文件. 
rpm -qc name :只顯示軟體包安裝后的配置文件. 
rpm -qd name: 只顯示軟體包安裝後生成的文檔. 
rpm -q --scripts name:軟體包安裝后執行的腳本. 
rpm -qf /etc/profile:查詢文件是由哪兒個軟體包安裝生成的. 

2016年3月29日 星期二

SUSE NFS 指令


linux文件掛載其實和windows文件共享原理差不多,由主機配置一個共享目錄,客戶端機器可以通過網路訪問該共享目錄。

下面以SUSE11為例子,簡要描述下NFS文件掛載過程:

一、主機端(主機IP192.168.0.100)

1、準備工作,主機需要完成NFS環境搭建

安裝:portmap-6.0+git20070716-31.16.x86_64.rpm (用作埠映射,把RPC程序號轉化為Internet的埠號)

安裝:nfs-kernel-server-1.2.1-2.6.6.x86_64.rpm (NFS服務)

2 設置共享目錄

mkdir /opt/share

3、編輯exports文件 vi /etc/exports

後面追加

/opt/share 192.168.0.*(rw,no_root_squash)

這裡可以配置單個IP,也可設置整個網段都可以訪問(192.168.0.*),還可以設置多個網段(192.168.0.0/2)

下面是一些NFS共享的常用參數: 

ro 只讀訪問 

rw 讀寫訪問 

sync 所有數據在請求時寫入共享 

async NFS在寫入數據前可以相應請求 

secure NFS通過1024以下的安全TCP/IP埠發送 

insecure NFS通過1024以上的埠發送 

wdelay 如果多個用戶要寫入NFS目錄,則歸組寫入(默認) 

no_wdelay 如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,無需此設置。 

hide 在NFS共享目錄中不共享其子目錄 

no_hide 共享NFS目錄的子目錄 

subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的許可權(默認) 

no_subtree_check 和上面相對,不檢查父目錄許可權 

all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。 

no_all_squash 保留共享文件的UID和GID(默認) 

root_squash root用戶的所有請求映射成如anonymous用戶一樣的許可權(默認) 

no_root_squas root用戶具有根目錄的完全管理訪問許可權 

anonuid=xxx 指定NFS伺服器/etc/passwd文件中匿名用戶的UID 

4、啟動服務

service rpcbind start

service nfsserver start

如果已經啟動了服務,修改配置後需要重啟

service rpcbind restart

service nfsserver restart

二、客戶端

1、啟動rpcbind服務

service rpcbind start

2、創建共享目錄

mkdir /opt/getShare

3、掛載共享目錄

mount -t nfs 192.168.0.100:/opt/share /opt/getShare