顯示包含「Linux」標籤的文章。顯示所有文章
顯示包含「Linux」標籤的文章。顯示所有文章

星期一, 6月 19, 2017

install php 5.5 opcache on Centos 5.11

Oh, I've already got answer to my question :) Add it here, maybe, someone else will use it.
Initially I installed php using such command
# yum --enablerepo=remi,remi-php55 install php-pecl-apc php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
Now I just ADDED missing extension with this command
# yum --enablerepo=remi,remi-php55 install php-opcache
And it worked!!! phpinfo() shows needed module :)

星期二, 4月 25, 2017

Centos 5.X 升級更新問題

CentOS 5.X 己經停止支援了,所以各大 Mirror Site 都砍掉這些檔案

主要還是 yum update 不能用了, 像是


# yum update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. /
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/5/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base
這時候就要修改 mirror 檔案, mark 掉所有 mirrorlist 的地方, 改從 valut 抓檔案

#vi /etc/yum.repos.d/CentOS-Base.repo , mark 掉所有 mirrorlist=

分別加上
baseurl=http://vault.centos.org/5.11/os/$basearch
baseurl=http://vault.centos.org/5.11/updates/$basearch
baseurl=http://vault.centos.org/5.11/extras/$basearch
baseurl=http://vault.centos.org/5.11/centosplus/$basearch
baseurl=http://vault.centos.org/5.11/contrib/$basearch

硬改 5.11 應該也沒有什麼關係,反正也不會再升級或是進版了

資料來源:https://blog.richliu.com/2017/04/26/2142/centos-5-x-%E5%8D%87%E7%B4%9A%E6%9B%B4%E6%96%B0%E5%95%8F%E9%A1%8C

星期二, 3月 28, 2017

Linux top 指令 說明

 PID USER      PR   NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
28163 root      18   0  4220  968  444 R 47.4  0.0   0:00.24 fuser
28164 root      18   0  4220  972  444 R 47.4  0.0   0:00.24 fuser
28165 root      18   0  4220  968  444 R 47.4  0.0   0:00.24 fuser
28162 root      17   0  4220  968  444 R 45.4  0.0   0:00.23 fuser


PID — 進程id
USER — 進程所有者
PR — 進程優先順序
NI — nice值。負值表示高優先順序,正值表示低優先順序
VIRT — 進程使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
RES — 進程使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
SHR — 共用記憶體大小,單位kb
S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程
%CPU — 上次更新到現在的CPU時間佔用百分比
%MEM — 進程使用的實體記憶體百分比
TIME+ — 進程使用的CPU時間總計,單位1/100秒
COMMAND — 進程名稱(命令名/命令行)

星期五, 7月 15, 2016

惡意攻擊 Apache 連線滿載,造成記憶體爆滿

今天早上發現網頁開啟不了,查看伺服器狀態,發現預設的連線數已滿載,記憶體要耗盡。
Apache Status 即時記錄中,發現有個來自羅馬尼亞的IP持續使用POST方式發送連線需求。
重新啟動 Apache 後,利用iptable 擋掉這個 IP



 下圖可看到 產生四千多筆連線。



重新調整 apache httpd.conf 設定如下

<IfModule prefork.c>
StartServers       5
MinSpareServers    10
MaxSpareServers    20
ServerLimit       1500
MaxClients        1450
MaxRequestsPerChild  4000
</IfModule>

編輯 iptable 限制單一IP 最大的連線數為100個

#vi /etc/sysconfig/iptables

-A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT --reject-with tcp-reset

希望以上作法能有效抵擋惡意攻擊~~~

星期日, 5月 25, 2014

Linux 硬碟複製 - dd

資料來源:http://blog.longwin.com.tw/2008/07/linux_ghost_dd_copy_2008/



使用 dd 來將 sda 整顆硬碟複製到 sdb, 有點類似 Ghost 的意思, 指令如下:

dd if=/dev/sda of=/dev/sdb



如果要大量灌多台電腦, 只要先灌好一台, 把該裝的都裝好後, 用 Live CD 開機, 就可以快速複製囉~:)



建議參考頁面 http://www.l-penguin.idv.tw/article/dd-sys-backup.htm

如何让linux/Centos 32位支持大于4G内存

資料來源:http://carllai.blog.51cto.com/1664997/1225762



linux/Centos 32bit OS 默认不支持4G以上内存的,安装一个kernel-PAE补丁就可以解决了,操作前最好对虚拟机做一个快照备份,以防出现意外时可以恢复到正常状态。

下面是几个步骤:



[root@www.ctohome.com]# free

total used free shared buffers cached

Mem: 3881968 637928 3244040 0 111292 461680

-/+ buffers/cache: 64956 3817012

Swap: 4192924 0 4192924







[root@www.ctohome.com]# yum install kernel-PAE

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

centos-burstnet | 1.1 kB 00:00

updates-burstnet | 1.9 kB 00:00

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package kernel-PAE.i686 0:2.6.18-194.32.1.el5 set to be installed

--> Finished Dependency Resolution

Dependencies Resolved

==========================================================

Package Arch Version Repository Size

==========================================================

Installing:

kernel-PAE i686 2.6.18-194.32.1.el5 updates-burstnet 17 M

Transaction Summary

==========================================================

Install 1 Package(s)

Upgrade 0 Package(s)

Total download size: 17 M

Is this ok [y/N]: y

Downloading Packages:

kernel-PAE-2.6.18-194.32.1.el5.i686.rpm | 17 MB 00:01

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : kernel-PAE 1/1

Installed:

kernel-PAE.i686 0:2.6.18-194.32.1.el5

Complete!







[root@www.ctohome.com]# free

total used free shared buffers cached

Mem: 3881968 637928 3244040 0 111292 461680

-/+ buffers/cache: 64956 3817012

Swap: 4192924 0 4192924







[root@www.ctohome.com]# vi /boot/grub/grub.conf

default=0 #(把default=1改成default=0)

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.18-194.32.1.el5PAE) #(有这行PAE的就表示安装pae内核成功)

root (hd0,0)

kernel /vmlinuz-2.6.18-194.32.1.el5PAE ro root=LABEL=/

initrd /initrd-2.6.18-194.32.1.el5PAE.img

title CentOS (2.6.18-194.32.1.el5)

root (hd0,0)

kernel /vmlinuz-2.6.18-194.32.1.el5 ro root=LABEL=/

initrd /initrd-2.6.18-194.32.1.el5.img

title CentOS (2.6.18-194.el5)

root (hd0,0)

kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/

initrd /initrd-2.6.18-194.el5.img







[root@www.ctohome.com]# reboot (这里重启服务器,祈祷吧,有时候主板或网卡不支持,那么就只能联系机房了)

Broadcast message from root (pts/0) (Thu May 19 18:52:34 2011):

The system is going down for reboot NOW!







[root@www.ctohome.com]# free

total used free shared buffers cached

Mem: 8295488 215248 8080240 0 19460 142592

-/+ buffers/cache: 53196 8242292

Swap: 4192924 0 4192924




星期四, 5月 08, 2014

在linux中找出哪個進程最耗 iowait

今天發現備份用的伺服器,突然變的很忙碌,使用遠端 SSH 登入操作也變的很緩慢,



使用 #top 指令查詢,發現是 kjournald 用來 控管 EXT3檔系統的日誌進程佔掉很高的 CUP 資源。最後參考網路上的這篇文章,解決了問題









1. 找出CPU佔用率高的線程

ps H -eo user,pid,ppid,tid,time,psr,%cpu,cmd --sort=%cpu

參數'H'顯示線程相關的資訊,格式輸出中包含:user,pid,ppid,tid,time,%cpu,cmd,然後再用%cpu欄位進行排序



2. 找出耗iowait的進程

先停掉syslog

service syslog stop

打開block dump:

echo 1 > /proc/sys/vm/block_dump

多次運行,查看結果

dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head

排前的比較佔用io

抓完後關掉block_dump和啟動syslog:

echo 0 > /proc/sys/vm/block_dump

service syslog start

實踐發現,這樣找出的進程一般為kjournald、pdflush、kswapd0。



3. pidstat

# pidstat -d 5

Linux 2.6.26-2-openvz-686 (pro-12-gl.savonix.com) 10/29/2009 _i686_ (2 CPU)

11:19:41 PM PID kB_rd/s kB_wr/s kB_ccwr/s Command

11:19:46 PM 1895 0.00 23.06 0.00 kjournald

11:19:56 PM PID kB_rd/s kB_wr/s kB_ccwr/s Command

11:20:01 PM 423 0.00 0.80 0.00 apache2

11:20:01 PM 1851 0.00 0.80 0.00 nginx

11:20:01 PM 1895 0.00 8.80 0.00 kjournald



然後可以使用top命令查看進程對應的物理CPU:

執行top後,按f,再選擇j: P Last used cpu (SMP) ,再按 Enter 回到top介面



注:進程kjournald、pdflush、kswapd0的作用



1.kswapd0

系統每過一定時間就會喚醒kswapd,看看記憶體是否緊張,如果不緊張,則睡眠,在kswapd中,有2個閥值,pages_hige和pages_low,當空閒記憶體頁的數量低於pages_low的時候,kswapd進程就會掃描記憶體並且每次釋放出32個free pages,直到free page的數量到達pages_high.



2.kjournald

EXT3檔系統的日誌進程,具有3種模式:

記錄所有檔系統上的元資料改變,最慢的一種模式。

默認使用的模式,只記錄檔系統改變的元資料,並在改變之前記錄日誌。

最快的一種模式,同樣只記錄修改過的元資料,依賴標準檔系統寫進程將資料寫到硬碟。

修改模式EXT3的工作模式;

vim /etc/fstab

/dev/hda5 /opt ext3 data=writeback 1 0

詳細介紹請參考: http://www.linuxplanet.com/linuxplanet/reports/4136/5/





PS 這部份 我沒有照著做,系統已回復正常。只是 重新啟動 syslog 這支服務。



3.pdflush

pdflush用於將記憶體中的內容和檔系統進行同步,比如說,當一個檔在記憶體中進行修改,pdflush負責將它寫回硬碟.每當記憶體中的垃圾頁(dirty page)超過10%的時候,pdflush就會將這些頁面備份回硬碟.這個比率是可調節的,通過/etc/sysctl.conf中的 vm.dirty_background_ratio項 預設值為10 也可以。

cat /proc/sys/vm/dirty_background_ratio 查看當前的值。




















星期一, 2月 03, 2014

Linux释放内存后。清空swap分区

先应该同步一下



# sync



再执行

#echo 1 > /proc/sys/vm/drop_caches



查看内存占用情况

# free -m

total used free shared buffers cached

Mem: 12010 9433 2577 0 4 24

-/+ buffers/cache: 9404 2606

Swap: 8094 2838 5256



swap还是使用中。。。求问该咋办。。。。



# swapoff -a (關閉SWAP,程序需要執行一段時間,把佔用的記憶清掉)



# swapon -a (啟動SWAP)



终于free -m 看到swap为空了。


星期五, 12月 27, 2013

使用tar打包壓縮並分割為固定大小的檔案

如果資料全部有 2GB, 如何利用 tar 來打包壓縮每 600MB 為一個檔案的備份方法?





壓縮備份:



tar -cjvf- ./targrt-path/ | split -a 1 -b 600m – ./`date +%Y-%m-%d`.tar.bz2.



解壓縮還原:



cat *.bz2* | tar -jxv -C /tmp





參考來源:



http://vincentlam.wordpress.com/2009/04/22/%E4%BD%BF%E7%94%A8tar%E6%89%93%E5%8C%85%E5%A3%93%E7%B8%AE%E4%B8%A6%E5%88%86%E5%89%B2%E7%82%BA%E5%9B%BA%E5%AE%9A%E5%A4%A7%E5%B0%8F%E7%9A%84%E6%AA%94%E6%A1%88/

星期二, 12月 17, 2013

查看進程占用網路瓶寬情況-Nethogs

Nethogs 是一個終端下的網络流量監控工具可以直觀的顯示每個進程占用的帶寬。



選擇安裝目錄



# cd /usr/local







# wget http://sourceforge.net/projects/nethogs/files/nethogs/0.8/nethogs-0.8.0.tar.gz/download







[root@localhost ~]#yum -y install libpcap-devel ncurses-devel





[root@localhost ~]# tar zxvf nethogs-0.8.0.tar.gz





[root@localhost ~]# cd nethogs





[root@localhost nethogs]# make && make install





[root@localhost nethogs]# nethogs eth0



資料來源 http://rritw.com/a/JAVAbiancheng/ANT/20131204/448698.html

星期一, 12月 16, 2013

Linux: umount 時 出現 "Device is busy" 的解法

# 使用下列指令,會問你是不是要把 21023 這個 kill 掉, 選 y 就會 kill 掉



fuser -m -v -i -k /media/share





訊息如下:

USER PID ACCESS COMMAND

/meida/share: root 21023 ..c.. bash

Kill process 21023 ? (y/N) y

星期二, 12月 03, 2013

查看Linux硬碟裡那個資料夾佔的空間最多

1. 文字介面下 我們可以使用範例查看某個資料夾所佔的空間容量



範例



#du -csh /backup





2. 若是想要看詳細自動排列大小 排在越後面的佔用磁碟空間越多



#du --exclude="proc" | sort -g





星期一, 12月 02, 2013

Linux 開機不成功 單機編輯模式 /etc/fstab 掛接點錯誤

建議參考 此網頁 http://blog.faq-book.com/?p=5390



使用 GRUB 者:

開機時, 按 e , 表示準備修改 kernel 開機命令

選擇有 kernel 的命令列,按 e進入編輯模式,在最後空一格然後加上 single或1,接著按下「Enter」鍵。

如下所示:



kernel /vmlinuz-2.6.12-1 ro root=/dev/hda2 kernel single



按「 b 」繼續開機,即可順利進入單人模式.



完成需要進行的工作後,可以利用exit指令離開單人模式,而進行正常的開機程序。





真要命!不是說,設定完 fstab 後,請務必先使用 mount -a 測試嗎?



這一步很重要!否則當設定錯誤,就是會出現無法正常啟動linux,這樣的情況。



在修改之前,請先使用



mount -o remount,rw /

來使根目錄變成可寫入,這樣才能夠繼續使用 vi 修改!

改完後,在 reboot 看看。






星期五, 11月 01, 2013

安全性設定--限制所有查詢要求 allow-recursion

今早發現伺服器的DNS服務不正常,每分鐘上傳約1M左右,判斷可能是被攻擊了。

修改DNS設定,讓外部IP無法透過這台主機去查詢DNS,但是開放本機使用


修改DNS設定檔
#vi /var/named/chroot/etc/named.conf


允許哪些來源可以使用 DNS 主機進行遞迴查詢動作。簡單說就是透過這台 DNS 來查詢任何資料,包含不是該 DNS 主機負責的 zone 也代為查詢,將設定調整為下列文字,讓別人無法用你的 DNS 去探查別人的 DNS 主機資訊

options { 

          allow-recursion { 127.0.0.1/32; 192.168.1.0/24;};

 };


最後重新啟動DNS服務,讓設定生效

# /etc/init.d/named restart




星期二, 8月 27, 2013

linux 目錄ls 顏色不易辨識問題

vi  /etc/profile



將以下代碼放到檔案最下面

LS_COLORS="no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:"





使用變數

#export LS_COLORS

星期日, 8月 18, 2013

請格外留意 Atomic 的軟件庫,因為在安裝後,他們會把軟件庫預設為啟用的,並會在更新 release 套件時覆寫用戶的改動而不設通知。

Atomicorp 擁有商業產品及免費軟件庫,內中有較新的 PHP 5.3、MySQL 5.1 及很多其它套件。有其它地方未必可以找到的套件包括 hunspell、snort 及 zabbix。他們亦提供 Plesk。



請格外留意 Atomic 的軟件庫,因為在安裝後,他們會把軟件庫預設為啟用的,並會在更新 release 套件時覆寫用戶的改動而不設通知。



安裝時,Atomic 將會取代很多設定為核心的套件。很多 CentOS 用戶在啟用此軟件庫後都遇上問題,這事實在搜尋論壇可見一班。軟件庫的定義已收錄在 atomic-release 套件內。

星期三, 6月 26, 2013

修改vim字体颜色解决编辑php文件蓝色注释看不清的问题

註解文字原本為藍色看不清楚,調整為白色。





# vi ~/.vimrc 加入如下内容即可



hi Comment ctermfg =white


星期六, 3月 16, 2013

虛擬主機管理設定

ProFTPd 登入緩慢問題

在安裝 ProFTPd 後,會發覺登入時非常援慢,但只要登入成功後,速度就會變得很暢順。



造成這個問題的原因是

ProFTPd 預設在登入時會做「反查」的動作,解決方法是將 ProFTPd 設定為不做「反查」。方法如下:



1. 開啟 proftpd.conf



#vi /etc/proftpd.conf 或是自行安裝的位置 /usr/local/etc/proftpd.conf





2. 加入以下兩行:



UseReverseDNS off

IdentLookups off





3. 重新啟動 ProFTPd。



# /etc/init.d/proftpd restart







資料來源:http://www.hkcode.com/category/linux-bsd-notes/page/3