linux系統(tǒng)維護命令
系統(tǒng)維護的任務是改正軟件系統(tǒng)在使用過程中發(fā)現(xiàn)的隱含錯誤,擴充在使用過程中用戶提出的新的功能及性能要求,其目的是維護軟件系統(tǒng)的"正常運作"。下面大家與學習啦小編一起來學習一下linux 系統(tǒng)維護命令吧。
linux 系統(tǒng)維護命令
1.查看系統(tǒng)cpu使用情況
#top
2.查看cpu的基本信息
#cat /proc/cpuinfo
3.查看系統(tǒng)內(nèi)存使用情況
#free -m
4.查看內(nèi)存的基本信息
#cat /proc/meminfo
5.查看當前系統(tǒng)的負載
#w
[root@puppetmaster html]# w
14:59:05 up 20:43, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 06Dec14 38days 0.34s 0.34s -bash
root pts/1 192.168.179.1 07Dec14 0.00s 1.10s 0.15s w
load average后面3個數(shù)值,1分鐘、5分鐘、15分鐘負載情況
一般情況下這個值只要不超過你服務器的cpu數(shù)量就沒有關系,如果你的服務器cpu數(shù)量為8,那么這個值若小于8,就說明你的服務器沒有壓力,否則就要關注一下了。
如何查看cpu的數(shù)量?#cat /proc/cpuinfo |grep "processor"
6.通過vmstat查看系統(tǒng)負載,可以具體到哪負載壓力大
[root@puppetmaster html]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 16744 5688 72508 145516 2 2 28 20 128 207 1 1 97 1 0
0 0 16744 5688 72508 145516 0 0 0 0 104 191 0 1 99 0 0
0 0 16744 5688 72508 145516 0 0 0 0 105 200 0 0 100 0 0
0 0 16744 5688 72508 145516 0 0 0 0 109 198 0 0 100 0 0
0 0 16744 5688 72508 145516 0 0 0 0 105 199 1 0 99 0 0
7.查看網(wǎng)卡流程
#sar -n DEV
[root@puppetmaster html]# sar -n DEV
Linux 2.6.32-431.29.2.el6.i686 (puppetmaster.info.com) 2015年01月14日 _i686_ (1 CPU)
10時30分20秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10時40分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時40分01秒 eth0 0.12 0.08 0.01 0.02 0.00 0.00 0.00
10時50分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10時50分01秒 eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11時00分01秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
IFACE這列表示設備名稱,rxpck/s 表示每秒進入收取的包的數(shù)量,txpck/s 表示每秒發(fā)送出去的包的數(shù)量,rxbyt/s 表示每秒收取的數(shù)據(jù)量(單位Byte),txbyt/s表示每秒發(fā)送的數(shù)據(jù)量。后面幾列不需要關注。如果有一天你所管理的服務器丟包非常嚴重,那么你就應該看一看這個網(wǎng)卡流量是否異常了,如果rxpck/s 那一列的數(shù)值大于4000,或者rxbyt/s那列大于5,000,000則很有可能是被攻擊了,正常的服務器網(wǎng)卡流量不會高于這么多,除非是你自己在拷貝數(shù)據(jù)。
8.查看磁盤的使用情況
#df -h
[root@puppetmaster html]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 17G 3.1G 13G 20% /
tmpfs 176M 0 176M 0% /dev/shm
/dev/sda1 194M 48M 137M 26% /boot
/dev/sda2 2.0G 35M 1.8G 2% /home
Linux 維護常用命令
1、查看某文件的一部分
如果你只想看文件的前 5 行,可以使用 head 命令,
如:head -5 /etc/passwd
如果你想查看文件的后 10 行,可以使用 tail 命令,
如:tail -10 /etc/passwd
查看文件中間一段,可以使用 sed 命令
如:sed –n '5,10p' /etc/passwd 這樣你就可以只查看文件的第 5 行到第 10 行
2、將 file.txt 里的123改為 456
方法 1
sed 's/123/456/g' file.txt > file.txt.new 修改的保存到其它文件
sed -i 's/123/456/g' file.txt 直接修改原文件
方法 2
vi file.txt
輸入命令:
:%s/123/456/g
注意:如果替換的文件有特殊符號如/就要用來取消。
例:sed -i 's//usr/local/apache2/htdocs//var/www/html/g' /usr/local/apache2/conf/httpd.conf
如果只是下原有的行后添加就用&
例:sed -i 's/DirectoryIndex index.html index.html.var/& index.htm index.php /g' /usr/local/apache2/conf/httpd.conf
3、echo 典型應用
echo "abcdefg" | perl -lne '{$a = reverse($_); print $a;}' 把一個字符串翻轉
echo bottle|rev 把一個字符串翻轉
[文件目錄管理]
1、刪除幾天以前的所有東西(包括目錄名和目錄中的文件)
1) find . -ctime +3 -exec rm -rf {} ;
2) find ./ -mtime +3 -print|xargs rm -f –r
2、在多級目錄中查找某個文件的方法
1) find /dir -name filename.ext
2) du -a | grep filename.ext
3) locate filename.ext
3、刪除軟硬連接注意點
刪除軟件連接的時候一定要記得不要在刪除的文件夾后加一斜杠,
rm -f filename/
會說這是一個文件夾不能刪除
rm filename
會提示說是否要刪除這個連接。
如果用的第一種可能會把其它文件都刪除
4、刪除目錄中含輸入關鍵字的文件
find /mnt/ebook/ -type f -exec grep "在此輸入關鍵字" {} ; -print -exec rm {} ;
5、在當前目錄下解壓 rpm 文件
cat kernel-ntfs-2.4.20-8.i686.rpm | rpm2cpio | pax –r
6、用命令清空 Root 回收站中的文件
cd /var/.Trash-root
rm -rf *
[系統(tǒng)與安全]
1、讓用戶的密碼必須有一定的長度,并且符合復雜度
vi /etc/login.defs,修改 PASS_MIN_LEN
2、用 dat 查詢昨天的日期
date --date='yesterday'
3、修改系統(tǒng)時
1) 設置你的時區(qū): timeconfig 里選擇Asia/Shanghai (如果你位于 GMT+8 中國區(qū)域)
2) 與標準時間服務器校準: ntpdate time.nist.gov
date -s “2003-04-14 cst”,cst 指時區(qū),時間設定用 date -s 18:10
修改后執(zhí)行 clock -w 寫到 CMOS
3) 將當前軟件系統(tǒng)時間寫入硬件時鐘: hwclock –systohc
4、改變 redhat 的系統(tǒng)語言/字符集
修改 /etc/sysconfig/i18n 文件,如
LANG="en_US",xwindow會顯示英文界面,
LANG="zh_CN.GB18030",xwindow會顯示中文界面。
還有一種方法
cp /etc/sysconfig/i18n $HOME/.i18n
vi $HOME/.i18n 文件,如
LANG="en_US",xwindow會顯示英文界面,
LANG="zh_CN.GB18030",xwindow會顯示中文界面。
這樣就可以改變個人的界面語言,而不影響別的用戶
5、查看系統(tǒng)信息
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts - 中斷
cat /proc/ioports - 設備 IO端口
cat /proc/meminfo - 內(nèi)存信息(i.e. mem used, free, swap size)
cat /proc/partitions - 所有設備的所有分區(qū)
cat /proc/pci - PCI設備的信息
cat /proc/swaps - 所有 Swap 分區(qū)的信息
cat /proc/version - Linux 的版本號 相當于 uname -r
uname -a - 看系統(tǒng)內(nèi)核等信息
6、讓 linux自動同步時間
vi /etc/crontab
加上一句:
00 0 1 * * root rdate -s time.nist.gov
7、如何防止某個關鍵文件被修改
在 Linux 下,有些配置文件是不允許任何人(包括 root)修改的。為了防止被誤刪除或修改
可以設定該文件的“不可修改位(immutable) ”。命令如下:
# chattr +i /etc/fstab
如果需要修改文件則采用下面的命令:
# chattr -i /etc/fstab
[管理與網(wǎng)絡]
1、 lsof 用法小全
lsof abc.txt 顯示開啟文件 abc.txt 的進程
lsof -i :22 知道 22 端口現(xiàn)在運行什么程序
lsof -c nsd 顯示 nsd 進程現(xiàn)在打開的文件
lsof -g gid 顯示歸屬 gid 的進程情況
lsof +d /usr/local/ 顯示目錄下被進程開啟的文件
lsof +D /usr/local/ 同上,但是會搜索目錄下的目錄,時間較長
lsof -d 4 顯示使用 fd 為4 的進程
lsof -i 用以顯示符合條件的進程情況
語法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4 位置
service --> /etc/service中的 service name (可以不止一個)
port --> 端口號(可以不止一個)
例子: TCP:25 - TCP and port 25
@1.2.3.4 - Internet IPv4 host address 1.2.3.4
[email=tcp@ohaha.ks.edu.tw:ftp]tcp@ohaha.ks.edu.tw:ftp[/email]
- TCP protocol host:ohaha.ks.edu.tw service name:ftp
lsof -n 不將 IP轉換為 hostname,預設是不加上-n參數(shù)
例子: lsof -i
[email=tcp@ohaha.ks.edu.tw:ftp]tcp@ohaha.ks.edu.tw:ftp[/email]
-n
lsof -p 12 看進程號為 12的進程打開了哪些文件
2、grep 不顯示本身進程
#ps -aux|grep httpd|grep -v grep
grep -v grep可以取消顯示你所執(zhí)行的 grep 本身這個進程,-v 參數(shù)是不顯示所列出的進程名
3、查看本機IP
ifconfig |grep "inet" |cut -c 0-36|sed -e 's/[a-zA-Z: ]//g'
hostname –i
4、查看有多少活動的Httpd進程
#!/bin/sh
while (true)
do
pstree |grep "*[httpd]$"|sed 's/.*-([0-9][0-9]*)*[httpd]$/1/'
sleep 3
done
同樣可以引用到其它的進程
5、設置 com1口,讓超級終端通過 com1口進行登錄
第一步:確認有/sbin/agetty,編輯/etc/inittab,添加
7:2345:respawn:/sbin/agetty /dev/ttyS0 9600
9600bps 是因為連路由器時缺省一般都是這種速率,也可以設成
19200、38400、57600、115200
第二步:修改/etc/securetty,添加一行:ttyS0,確保 root 用戶能登錄
第三步:重啟機器,就可以拔掉鼠標鍵盤顯示器(啟動時最好還是要看看輸出信息)了
6、查找或刪除正在使用某文件的進程
fuser filename
fuser -k filename
7、已知網(wǎng)絡中一個機器的硬件地址,如何知道它所對應的 IP地址
在 Linux 下,假定要查“00:0A:EB:27:17:B9”這樣一個硬件地址所對應的 IP 地址,可以使
用以下命令:
# cat /proc/net/arp |grep 00:0A:EB:27:17:B9
192.168.2.54 0x1 0x6 00:0A:EB:27:17:B9 *eth2
另外,還可以用“arp -a”命令查詢:
# arp –a|grep 00:0A:EB:27:17:B9
(192.168.2.54)at 00:0A:EB:27:17:B9[ether] on eth2
8、在 Linux下如何綁定 IP地址和硬件地址
可以編輯一個地址對應文件,里面記錄了 IP地址和硬件地址的對應關系,然后執(zhí)行“arp –
f 地址對應文件”。如果沒有指定地址對應文件,則通常情況下一默認文件/etc/ethers為準。
地址對應文件的格式如下:
192.168.0.1 00:0D:61:27:58:93
192.168.0.2 00:40:F4:2A:2E:5C
192.168.0.3 00:0A:EB:5E:BA:8E
9、更改 eth0是否混雜模式(混雜模式可以監(jiān)聽其它主機的信息)
網(wǎng)卡 eth0 改成混雜模式:
ifconfig eth0 promisc
關閉混雜模式:
ifconfig eth0 –promisc
10、linux下清空 arp表的命令
#arp -d -a(適用于 bsd)
for HOST in `arp | sed '/Address/d' | awk '{ print class="main">
linux系統(tǒng)維護命令
11、如何得到網(wǎng)卡的 MAC地址
arp -a | awk '{print }'
ifconfig eth0 | head -1 | awk '{print }'
12、一個網(wǎng)卡綁定多 ip
方法一、建立eth0:1在網(wǎng)卡后加冒號和數(shù)字的文件
cp /etc/sysconfig/network-scripts/eth0 /etc/sysconfig/network-scripts/eth0:1
再修改下eth0:1就可以了.
方法二、
在/etc/sysconfig/network-scripts/下創(chuàng)建一個文件:ifcfg-ethX-rangeX ("X"為網(wǎng)卡號)
文件內(nèi)容:
IPADDR_START=
IPADDR_END=
CLONENUM=0
可以有 256個 ip
13、一個 ip如何綁定兩塊網(wǎng)卡
假設 192.168.0.88 是ip,192.168.0.1 是網(wǎng)關:
/sbin/modprobe bonding miimon=100 mode=1
/sbin/ifdown eth0
/sbin/ifdown eth1
/sbin/ifconfig bond0 192.168.0.88
/sbin/ifenslave bond0 eth0 eth1
/sbin/route add default gw 192.168.0.1
14、設置ssh 上來能不自動斷線
修改自己 HOME 目錄下的.bash_profile文件,加上
export TMOUT=1000000 (以秒為單位)
然后運行 source .bash_profile
15、mount 局域網(wǎng)上其他windows機器共享出的目錄
mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom
16、向登陸到同一臺服務器上的所有用戶發(fā)一條信息
1)輸入 wall并回車
2)輸入要發(fā)送的消息
3)結束時按“Control-d”鍵,消息即在用戶的控制窗口中顯示
17、向遠程機器上的所有用戶發(fā)送消息
使用 rwall(向所有人遠程寫)命令同時發(fā)送消息到網(wǎng)絡中的所有用戶。
rwall hostname file
當使用 CDE或 OpenWindows 等窗口系統(tǒng)時,每個窗口被看成是一次單個的登錄;
如果用戶登錄次數(shù)超過一次則消息直接發(fā)送到控制窗口
18、向網(wǎng)絡中的所有用戶發(fā)送消息
發(fā)送消息到網(wǎng)絡中的所有用戶
1)輸入 rwall -n netgroup 并回車
2)輸入要發(fā)送的消息
3)結束時按“Control-d”鍵,消息即在系統(tǒng)每個用戶的控制窗口中顯示,下面是系統(tǒng)管理員
發(fā)消息到網(wǎng)絡組 Eng 每個用戶的例子:
% rwall -n EngSystem will be rebooted at 11:00.(Control-d)
%
用戶控制窗口中的消息:Broadcast message from root on console…System will be rebooted at
11:00.EOF
注意:也可以通過 rwall hostname(主機名)命令到系統(tǒng)的所有用戶
19、 將 top的結果輸出到文件中
top -d 2 -n 3 -b >test.txt
可以把 top 的結果每隔 2秒,打印 3次,這樣后面頁的進程也能夠看見了
20、裝雙系統(tǒng)不能看到另一個系統(tǒng)的解決辦法
首先光盤啟動,進入 rescue 模式,運行 GRUB,進入 grub 提示符 grub>,然后敲入下面的
語句,重啟就好了。
root (hd0,2),setup (hd0)
21、壓縮傳輸文件或目錄
傳輸?shù)竭h程:tar czf - www | ssh server "tar zxf -"
壓縮到遠程:tar czf - www | ssh server "cat >
www.tar.gz
"
解壓到遠程:ssh server "tar zxf -"
www.tar.gz
解壓到本地:ssh server "cat
www.tar.gz
" | tar zxf -
22、命令行下發(fā)送帶附件的郵件
方法 1. uuencode | mail -s "title"
[email=mail@address]mail@address[/email]
本地需要作為附件的文件名。
郵件中的附件文件名,可以和不同,其實內(nèi)容一樣。
方法 2. cat | mutt -s "title" -a
[email=mail@address]mail@address[/email]
郵件正文內(nèi)容。
本地需要作為附件的文件名。
[Mysql維護]
1、mysql 的數(shù)據(jù)庫存放在什么地方
1) 如果使用 rpm包安裝,應該在/var/lib/mysql 目錄下,以數(shù)據(jù)庫名為目錄名
2) 如果源碼安裝在/usr/local/mysql中,應該在/usr/local/mysql/var中,以數(shù)據(jù)庫名為目錄名
2、 從 mysql 中導出和導入數(shù)據(jù)
導出數(shù)據(jù)庫
mysqldump 數(shù)據(jù)庫名 > 文件名
導入數(shù)據(jù)庫
mysqladmin create 數(shù)據(jù)庫名
mysql 數(shù)據(jù)庫名
5、 導出數(shù)據(jù)的幾種常用方法
1)使用 mysqldump
#mysqldump -uuser -ppassword -B database --tables table1 --tables table2 >
dump_data_20051206.sql
詳細的參數(shù)
2)backup to語法
mysql>BACKUP TABLE tbl_name[,tbl_name...] TO '/path/to/backup/directory';
詳細請查看 mysql 手冊
3)mysqlhotcopy
#mysqlhotcopy db_name [/path/to/new_directory]
或
#mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory
或
#mysqlhotcopy db_name./regex/
詳細請查看 mysql 手冊
4)select into outfile
詳細請查看 mysql 手冊
5)客戶端命令行
#mysql -uuser -ppassword -e "sql statements" database > result.txt
以上各種方法中,以 mysqldump 最常用
6、 如何在命令行上執(zhí)行 sql 語句
#mysql -uuser -ppassword -e "sql statements" database
7、 導入備份出來文件的常見方法
1)由 mysqldump 出來的文件
#mysql -uuser -ppassword [database] source /path_to_file/dump.sql;
3)按照一定格式存儲的文本文件或 csv 等文件
#mysqlimport [options] database file1 [file2....]
詳細請查看 mysql 手冊
4)文件類型同上,也可以使用 load data 語法導入
詳細請查看 mysql 手冊
4、過濾掉#號打頭的行,和所有的空行(對于查看配置文檔很有用)
awk '/^[^#]/&&/^[^$]/' filename > new.file
7.刪除文件大小為零的文件
rm -i `find ./ -size 0`
find ./ -size 0 -exec rm {} ;
find ./ -size |xargs rm -f &非常有效
for file in * #自己定義需要刪除的文件類型
do
if [ ! -s ${file} ]
then
rm ${file}
echo "rm $file Success!"
fi
done
8.利用現(xiàn)存兩個文件,生成一個新的文件
1) 取出兩個文件的并集(重復的行只保留一份)
2) 取出兩個文件的交集(只留下同時存在于兩個文件中的文件)
3) 刪除交集,留下其他的行
A cat file1 file2 | sort | uniq
B cat file1 file2 | sort | uniq -d
C cat file1 file2 | sort | uniq -u
6、更改字符集
網(wǎng)站因為遷移改變了原有的字符集,導致前臺看到亂碼。如果是少數(shù)的幾個頁可以直接拿到本地用Editplus或者UltraEdit進行另存為時選擇字符編碼?,F(xiàn)在有一個不用拿到本地的方法,在Linux機器上就能進行。
conv -f -t -o
如:將GB2312轉為UTF-8 注意:轉成的必須是新的文件名,不然會出錯。
/usr/bin/iconv –f GB2312 –t UTF-8 sourcefile > targetfile
[管理與維護]
增加虛擬內(nèi)存
26.如果SWAP(交換空間)不夠了,要增加怎么辦?只要你的硬盤上有空閑的空間,直接用命令:mkswape/dev/hda(假設你的驅動器是/dev/hda),swapon/dev/hda;要自動啟動SWAPE,可以把新的分區(qū)加到/etc/fstab中去,照著原來SWAP的寫就行了。用“free” 檢查 你SWAP的大小,Linux支持最多16個交換分區(qū),每個交換分區(qū)最大128MB,沒有空閑分區(qū)的時候,可以用個大文件來建立,用命令“man mkswap”查看幫助。
# dd if=/dev/zero of=swapfile bs=1024 count=8192
# mkswap swapfile 8192
# sync
# swapon swapfile
27、一次解壓多個.tar.gz文件
find ./ -name '*.tar.gz' -exec tar zxvf {} ; -print
最后
如果你想做一些性能調優(yōu)的工作,一定要善于利用一些工具進行關注相應的狀態(tài)。通過linux命令你可以比較方便的觀測到CPU , I/O , network等一些比較外圍的狀態(tài),很多時候就已經(jīng)可以解決大部分的問題。jvm內(nèi)部的一些運行狀態(tài)監(jiān)控,得需要借助一些特有的工具進行細粒度的觀測。
看過“ linux 系統(tǒng)維護命令 ”的人還看了:
linux系統(tǒng)維護命令
精選文章
-
linux系統(tǒng)調用方法
系統(tǒng)調用:是通過軟件中斷向內(nèi)核發(fā)送一個明確的請求,系統(tǒng)調用實現(xiàn)是在內(nèi)核完成的,那么linux系統(tǒng)怎么調用呢?下面大家與學習啦小編一起來學習一下吧
-
linux系統(tǒng)怎么設置時間同步
Linux服務器運行久時,系統(tǒng)時間就會存在一定的誤差,那么linux系統(tǒng)怎么設置時間同步呢?下面大家與學習啦小編一起來學習一下吧。 linux系統(tǒng)怎么設置時間
-
linux系統(tǒng)日志查看命令
本篇文章主要介紹linux系統(tǒng)中如何通過常用命令查看日志,希望會對大家的學習有所幫助。下面大家與學習啦小編一起來學習一下吧。 Linux系統(tǒng)中查看日志
-
linux系統(tǒng)架構詳解
Linux是一種自由和開放源碼的類Unix操作系統(tǒng),存在著許多不同的Linux版本,但它們都使用了Linux內(nèi)核。嚴格來講,Linux這個詞本身只表示Linux內(nèi)核,但實際上