linux常见故障处理,[转载]Linux常见操作和故障处理汇总
1。SSH登錄提示:** !! ILLEGAL HOST KEY FOR
172.16.25.3 !! **
Remove /root/.ssh2/hostkeys/key_36000_172.16.25.3.pub and try
again if you think that this is normal.
Disconnected; host key not verifiable (Illegal host key.).
處理辦法: rm
/root/.ssh2/hostkeys/key_36000_172.16.25.3.pub
然后ssh登錄上去
2。DB查詢:
select * from host, hostgroup where
host.host_name=hostgroup.host_name and
hostgroup.group_name='host_qqdisK';
select * from host_serveroa where business='QQDisk';
左連接查詢:僅僅在表service的記錄
select host_serveroa.host_ip?from
host_serveroa?left join service on
service.host_name=host_serveroa.host_ip?where
service_name like "%disk%";
3。DB恢復:
有索引的表導入數據要慢,innodb類型的表導入數據要慢。
mysql> load data infile '/home/freeluo/number'
into table dbtest.host;
Query OK, 20000 rows affected (0.14 sec)
Records: 20000?Deleted: 0?Skipped: 0?Warnings: 0
./mysqladmin -h 127.0.0.1 -uroot --port=3333 flush-tables
myisamchk -rq /home/freeluo/mysql/var/dbtest/host
myisamchk --keys-used=0 -rq
/home/freeluo/mysql/var/dbtest/host
system("mysql -uroot -e "load data infile '$db_dir/$txt[$cnt]'
into table $db_name.$table" ");
system("cd $db_dir
2>>db_recover.elog; mysqlimport -f
$db_name $txt[$cnt]
2>>db_recover.elog");
mysqlimport?--socket=/tmp/freeluo.sock?--port=3333
-uroot?-f dbtest host.txt;
4.db檢查和修復:
mysql> repair table t_pay_water_2;
mysqlcheck -A --auto-repair
myisamchk
mysqladmin flush-tables
檢查:./myisamchk -c
/usr/local/mysql/data/index_db0/t_china_mobile_oil_history_6
修復:./myisamchk -r
/usr/local/mysql/data/index_db0/t_china_mobile_oil_history_6
5。文件修復:
例如:分區/dev/sda1上的文件系統壞了,先
umount /dev/sda1
fsck -y /dev/sda1
6.快速掛載nfs文件系統:
rpc.portmap;
mount -a -t nfs;
7.產生core文件以及察看core文件:
ulimit -c unlimited
file core得到導致core的文件名
gdb -core core 文件名
where 查到具體的位置。
8.程序性能分析:
有兩個工具:
Time progame_name;
gprof . gprof要求在編譯的時候添加-pg選項
9.shell文本處理:
文本最后要多一行!
1)批量替換目錄文件中的某個字符串:
perl -pi -e 's/index.html/index.jsp/g' $(find .?-name "*.html")
2)遞歸查詢當前目錄和子目錄文件中特定的字符串:
grep -r test .
10.解決局域網內盜用IP:
捆綁IP和MAC地址:ARP -s 192.168.10.59 00
-50-ff-6c-08-75
解除網卡的IP與MAC地址的綁定:?arp
-d 網卡IP
11.查看 Linux
啟動時的信息:
dmesg,用dmesg |more可能看的更仔細
12.處理文件名內含有特殊字符的文件
如果有一個文件名叫 -file 如果想刪除它,鍵入 rm -file 會顯示 invalid option
,原來由于文件名的第一個字符為 - , Linux 把文件名當作選項了,可以加 -- 解決 這個問題, 如 rm -- -file
。如果是其他特殊字符的話可 以在特殊字符前加一個,或者用雙引號把整個文件名括起來。
13.ip配置:
1. ifconfig eth0 219.133.38.151 netmask 255.255.255.0
2. 設置默認網關?route add default gw
208.164.186.1
3. 修改/etc/rc.d/rc.inet1
14.在線安裝卸載一塊新硬盤:
echo "scsi add-single-device 1 0 1 0" >
/proc/scsi/scsi
fdisk /dev/sdb;
mke2fs -j /dev/sdb1
mkdir /data1;
mount -t ext3 /dev/sdb1 /data1
卸載:echo "scsi remove-single-device 1 0 1 0" >
/proc/scsi/scsi
15.在線對數據分區設置noatime:
修改/etc/fstab , 把數據分區的mount參數 "defaults" ->
"noatime"
例如:/dev/cciss/c0d0p4?/data?ext3?noatime 1?2
在線修改數據分區mount參數:
mount -o noatime,remount /data
16.路由設置:
route del -net 172.30.0.0/20
route add -net 172.30.0.0/16 gw gw_ip
/etc/rc.d/rc.inet1 ?/sbin/route add -net
172.30.0.0/16 gw gw_ip eth1
17.關于nfs
server端的配置:
1. mount磁盤的時候加noatime,mount nfs的時候不需要
2. 刪除updatedb/slocate
3. NFS線程數設到client的數以上。修改 /etc/rc.d/rc.nfsd 文件
18.Mysql和apache綁定ip
My.cnf [mysqld]下面新增一行:
bind_address = 172.16.25.65
Httpd.conf
BindAddress 172.16.25.38
19.正則表達式匹配:
在文件中查找 *.*.*.*:*
egrep
"[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[:][0-9]"
text
遞歸查詢內容: grep -r test *
20.查詢當前目錄大小:
du -m --max-depth=1
21.編譯內核:
make mrproper用于清楚原來編譯過的信息
make
menuconfig用于進行編譯前的內核配置,生成一個.config文件,我們也可以拷貝別人生成的.config文件,這樣不用自己配置
make dep用于生成依賴文件
#make all 編譯
make bzImage
cp bzImage到/boot下
修改/etc/lilo.conf文件
運行lilo
22.iptables使用:
服務器上丟棄來自172.30.21.176上的任何包:
iptables -A INPUT -s 172.30.21.176 -j DROP
iptables -A INPUT -s 172.30.21.176 -p tcp --dport 56000 -j
DROP
保存&恢復規則
iptables-save
> iptables-script
iptables-restore
iptables-script
smbmount //172.30.20.21/vss -U vss
super block 是可以修復的,用fsck -b
23.如何看當前的系統是否帶epoll:
cat /proc/filesystems|grep eventpollfs
結果中有上面這行就代表已經有epoll了。
24.獲取特定的時間:
三天前的時間:date +%Y%m%d -d'-3 day'
格式:09/Aug/2010: date +%d/%b/%Y
25。搭建rsync Server:
mkdir -p?/data/update
chown nobody:users /data/update
chmod 774 /data/update
mkdir /data/rsyncd_log
rsync?172.16.27.91::update/freeluo/rsync_conf/* /etc
rsync --daemon --address=
26.定時重啟并廣播消息:
shutdown -r?+10?'reboot
after 10 minutes'
(-f -F)確認是否重啟時自檢
shutdown -h?+1?'shutdown
after 1 minute'
27.單用戶模式登陸系統:
boot:linux -s
28.windows強行終止進程:
ntsd -c q -p pid號
29.靜態編譯源文件的包:
make LDFLAGS="-static"
jxvf?.bz2
LDFLAGS="-static"
DESTDIR=/foo
export LDFLAGS DESTDIR
./configure
make
make install
30.一網卡綁定多個ip:
ifconfig eth1:5 192.168.66.189
31.ext2轉換到ext3:
tune2fs -j /dev/sdd1
32.清理ARP
cache:
Arp -d 網關
33.df和du查看的容量差異很大,解決辦法:
要查查看是什么問題應起了?
1. 文件系統問題,導致df數據不對,需要fsck
2. 大日志文件被刪除,但文件沒有關閉空間沒有釋放,重起服務
大日志文件被刪除,這個怎么確定呢?
這個比較難確定。你用 lsof -n | grep deleted看看。這個命令很耗資源,如果系統忙就不要用。
34.時區調整:
找到相應的時區文件 /usr/share/zoneinfo/Asia/Shanghai
用這個文件替換當前的/etc/localtime文件。
35.使用exec或ok來執行find命令:
為了用ls -l命令列出所匹配到的普通文件
find . -type f -exec ls -l {} ;
在當前目錄中查找所有文件名以.logG結尾、更改時間在5日以上的文件,并刪除它們,只不過在刪除之前先給出提示。
find . -name "*.log" -mtime +5 -ok rm {} ;
find . -name "*.html"?-mtime
+1?-exec ls -l {} ;
36.怎樣把子shell中的變量傳回父shell?
A: 例如(echo "$a") | read b不能工作,如何找到一個替代方案?下面給出一些可能的方案:
1.使用臨時文件
...
#in subshell
a=100
echo "$a">tmpfile
...
#in parent
read b
2.使用命名管道
mkfifo pipef
(...
echo "$a" > pipef
...)
read b
3.使用coprocess(ksh)
( echo "$a" |&)
read -p b
4.使用命令替換
b=`echo "$a"`
5.使用命令
`echo "b=$a"`
6.使用here document
read b <
`echo "$a"`
END
37.定時啟動任務
crontab -e
min hour day week month ~/shellname.sh
38.squid緩存清理:
在線:
squidclient
-m PURGE -p 80
URL
/usr/local/bin/clear_squid_cache.sh jpg
/usr/local/bin/clear_squid_cache.sh
music.ovi.com.cn
顯示當前緩存
/usr/sbin/purge -p localhost:80 -c /etc/squid/squid.conf -e
.
清除當前所有緩存
/usr/sbin/purge -p localhost:80 -c
/etc/squid/squid.conf
-P 1 -e .
/usr/sbin/purge -p
localhost:80 -c /etc/squid/squid.conf -P 1 -e
jpg.
離線:
關閉squid后清除緩存目錄
39.squid命中率查詢
*取得squid運行狀態信息:
squidclient -p 80 mgr:info
*取得squid內存使用情況: squidclient -p 80 mgr:mem
*取得squid已經緩存的列表: squidclient -p 80 mgrbjects. use it carefully,it
may crash
*取得squid的磁盤使用情況: squidclient -p 80 mgr:diskd
*強制更新某個url:squidclient -p 80 -m PURGE http://www.yejr.com/static.php
*更多的請查看:squidclient
-h
或者 squidclient -p 80 mgr:
40.建立SSH的信任關系:
目標:
HostA 訪問HostB,hostC不需要鍵入密碼,以root用戶為例:
第一步 在HostA上生成key:
HostA# ssh-keygen
-d
全部回車
產生id_dsa 和id_dsa.pub
第二步 將生成的id_dsa.pub傳到B,C的/root/.ssh目錄下,并且重命名為authorized_keys
HostA# scp -P 22
/var/log/nagios/.ssh/id_rsa.pub
ip:/var/log/nagios/.ssh/authorized_keys
第三步,從A登錄B and C
41.memcached命中率查詢:
memcached-tool localhost:11211 stats
一、緩存命中率 = get_hits/cmd_get * 100%
二、get_misses的數字加上get_hits應該等于cmd_get
三、total_items == cmd_set ==
get_misses,當可用最大內存用光時,memcached就會刪掉一些內容,等式就會不成立
42.linux版本查詢:
lsb_release
-a
43.何在虛擬機linux下掛載windows分區?
執行下面命令即可:
mount -t cifs //server/share /mnt/point -o
user=me,password=mine
注:server-----為要掛載PC的IP
share------為windows下的分區(或共享文件名)
point-------為掛載點
user,password------為linux下的用戶及密碼
例:#mount -t cifs //10.0.0.127/kinder /mnt/hdc7 -o
user=root,password=88888888
總結
以上是生活随笔為你收集整理的linux常见故障处理,[转载]Linux常见操作和故障处理汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux运维技巧,Linux运维需要掌
- 下一篇: C语言0xc0000142错误,第一次用