2012年3月 的存檔

linux 根據文件大小查找文件

2012年3月29日 沒有評論

linux下的find命令用來查找文件,通過man find就知道它是無所不能的。所以按照文件大小來查找文件就不在話下。從man find搜索size,可以看到如下信息:

-size n[cwbkMG]
	  File uses n units of space.  The following suffixes can be used:

	  b    for 512-byte blocks (this is the default if no suffix is used)

	  c    for bytes

	  w    for two-byte words

	  k    for Kilobytes (units of 1024 bytes)

	  M    for Megabytes (units of 1048576 bytes)

	  G    for Gigabytes (units of 1073741824 bytes)

注意:默認單位是b,而它代表的是512字節,所以2表示1K,1M則是2048,如果不想自己轉換,可以使用其他單位,如c、K、M等。

例子:查找當前目錄下文件大小為2048(2k)字節的文件

find ./ -size 4
或
find ./ -size 2048c
或
find ./ -size 2K

上述查找文件是等于指定大小的,那能不能查詢大于或小于某個指定值的文件呢,答案是肯定,例如:

查找大于2K的文件,+ 表示大于
find ./ -size +2048c

查找小于2K的文件,- 表示小于
find ./ -size +2048c -type f

一條命令列出當前網絡連接狀態分類匯總

2012年3月29日 沒有評論
netstat -nt | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

nginx Too many open files

2012年3月29日 沒有評論

默認情況下linux文件系統最大可打開文件數為1024,對于一個應用于生產環境下的服務器來說,這個設置太下,例如在用nginx做web服務器,當并發達到一定數量時,可以看到error.log里出現大量的“Nginx accept() failed (24: Too many open files)” 錯誤。解決這個問題的辦法有兩種:

方法一:使用ulimit -n 655350 把打開文件上限設置為655350,同時還需要修改nginx的配置文件,把worker_rlimit_nofile 值設置為一樣。

注意:通過ulimit修改打開文件上限只會影響當前shell環境,所以這是一個臨時解決方法,終極解決方法使用方法二。

方法二:在/etc/security/limits.conf文件中添加如下信息:

* soft nofile 655360
* hard nofile 655360

注意:這個方法修改后必須重啟機器才能使之生效。

分類: Linux, nginx 標簽:

如何查看linux版本

2012年3月29日 沒有評論

查看linux內核版本:

cat /proc/version
或
uname -a

查看linux發行版(系統)名稱和版本:

lsb_release -a

ubuntu 下
cat /etc/lsb-release
centos 下
cat /etc/redhat-release
或者
cat /etc/*release

從視頻文件提取音頻并存儲為MP3格式文件

2012年3月29日 沒有評論

在linux世界里,進行視頻格式轉化的軟件有很多,其中大名鼎鼎的ffmpeg和mplayer下的mencoder。本文主要介紹如何從視頻文件中提起音頻,同時保存成mp3格式的文件。

格式轉換其實就是經過解碼和重新編碼兩個過程,如果系統不存在對應的解、編碼器,就需要額外安裝。ffmpeg自帶了MP2格式的編碼器,對于MP2格式的音頻,普通電腦上的播放器似乎都能支持,但大部分手機的播放器不支持,所以為了通用,還是生成MP3格式的音頻。MP3編碼器可以使用lame。

在centos和ubuntu下,ffmpeg似乎不在標準的源中,不能使用yum或apt-get來安裝,其實源碼安裝也是很容易的,這里就介紹的就是通過源碼安裝,安裝前確保機器上有gcc,如果沒有安裝,先通過yum安裝。

安裝 lame

下載地址:http://sourceforge.net/projects/lame/files/lame/

使用wget下載到本機
wget http://nchc.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz

解壓文件:
tar -xvf lame-3.99.5.tar.gz

編譯安裝:
cd lame-3.99.5
./configure && make && make install

檢查本機是否有yasm(不知道是干什么用的),在ffmpeg執行configure時會用到它,不過可以disabled掉,也可以裝上它
安裝yasm:

下載地址:http://www.tortall.net/projects/yasm/releases/

下載文件:
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz

解壓并編譯安裝:
tar -xvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure && make && make install

安裝ffmpeg

下載地址:http://www.ffmpeg.org/download.html

下載文件:
wget http://www.ffmpeg.org/releases/ffmpeg-0.10.2.tar.bz2
也可以使用svn、git下載最新版本

解壓文件:
tar -xvf ffmpeg-0.10.2.tar.bz2

編譯安裝:
cd ffmpeg-0.10.2
./configure --prefix=/usr/local/ffmpeg --enable-libmp3lame
make && make install

--enable-libmp3lame 是讓ffmpeg在編碼時可以使用MP3編碼器

至此,軟件都安裝好了。注意:如果使用ffmpeg出現如下錯誤信息:

ffmpeg: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory

其原因是lame編譯好的庫文件安裝在/usr/local/lib/下,而ffmpeg是去/usr/lib/下找,解決的辦法是做一個軟鏈接即可:

ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0

假設視頻文件名稱為01.flv,下面詳細介紹如何從里面提取去音頻。

通過ffmpeg來查看視頻文件信息:

ffmpeg -i 01.flv

輸出大致為:
  Duration: 00:01:10.21, start: 0.000000, bitrate: 284 kb/s
    Stream #0.0: Video: h264, yuv420p, 512x288 [PAR 513:512 DAR 57:32], 252 kb/s, 15 tbr, 1k tbn, 30 tbc
    Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 32 kb/s

可以看到音頻編碼用的acc,所以需要看看ffmpeg是否支持acc的解碼,命令為:

ffmpeg -codecs | grep aac

如果看到下面類似輸出,表示支持
DEA    aac             Advanced Audio Coding

DEA中的D表示decoder,E表示encoder,A表示Audio Codec

由于要轉換成MP3格式的音頻,所以就需要查看是否存在MP3編碼器,命令為:

ffmpeg -codecs | grep mp

如果輸出中存在如下信息即表示支持
  EA    libmp3lame      libmp3lame MP3 (MPEG audio layer 3)

DEA    mp2             MP2 (MPEG audio layer 2)

注意:如果沒有看到libmp3lame,就不能進行MP3格式的編碼,但是可以使用MP2格式的編碼,一個很奇怪的問題,我在一臺機器上編譯ffmpeg時候使用enable lame,安裝ffmpeg還是不支持MP3編碼,另外一臺機器上就是好的。不過可以通過lame來把MP2格式的音頻轉換為MP3格式,所以就算ffmpeg在編譯時候沒有指定使用MP3編碼器,也一樣可以得到MP3格式的音頻文件。

有了上面的知識,現在就來說怎么從視頻中獲取音頻

1、先獲取MP2編碼的音頻在使用lame來重新編碼 
ffmpeg -i 01.flv -f mp2 -vn t.mp3
lame t.mp3 01.mp3

-i 輸入文件, -f 輸出使用的編碼格式  -vn 禁止視頻輸出   t.mp3 輸出的文件名
使用lame命令還可以在MP3文件中增加一些額外信息,更多信息可以使用 lame --help id3 查看

2、一步到位直接使用MP3編碼器 
ffmpeg -i 01.flv -f mp3 -vn 01.mp3
或
ffmpeg -i 01.flv -acodec libmp3lame -vn 01.mp3

另外使用mplayer和mencoder獲取音頻命令為:

mencoder 01.flv -oac mp3lame -ovc lavc -o t.avi

mplayer -dumpaudio -dumpfile 01.mp3 t.avi

現在很多視頻網站上的一個長視頻都是分成很多小段的,如何把一個長視頻音頻提取到一個音頻文件中,在linux中,借用cat命令就很容易實現。假設視頻有三段,先使用上面提到的命令獲取三個獨立的音頻文件01.mp3、02.mp3和03.mp3,合并的命令為:

cat 01.mp3 02.mp3 03.mp3 > comp.mp3

修改sshd服務器的默認端口

2012年3月26日 沒有評論

一臺放在公網上的web服務器,sshd服務使用默認端口,今天用lastb看了一下,發現非常多試圖通過ssh來連接的用戶,算好密碼設置的比較強健,沒有被攻破。為了服務器安全考慮,所以決定修改sshd服務的端口,修改端口很容易,只需要把配置文件中的默認端口設置成一個空閑端口即可,配置文件為 /etc/ssh/sshd_config,找到Port 22,把22修改成自己喜歡端口即可,如果配置文件這行前面有注釋符號(#),需要去掉,重新sshd服務即可,重啟命令為:

/etc/init.d/sshd restart
或
service sshd restart

修改配置容易,但是需要注意,如果使用iptables之類的防火墻,最好先確認新端口是開放的,防止重啟sshd后無法連接上服務器。另外重啟sshd服務對已有的連接不會重置,可以在重啟前多開幾個終端先連接上,然后再重啟服務,這個時候新開終端使用修改后的端口來連接,確保可以正常連接再斷了老的連接。

另外,如果使用了rsync通過ssh協議來進行遠程數據備份,也需要做相應的修改,例如:

ssh使用默認端口情況下:
/usr/bin/rsync  -vzrtopg  --progress -e ssh [email protected]:/home/backups/ /data/backups

ssh不是默認端口,假設自定義sshd端口為3323
/usr/bin/rsync  -vzrtopg  --progress -e "ssh -p 3323" [email protected]:/home/backups/ /data/backups
分類: Linux 標簽:

mysqldump: Couldn’t execute ‘SHOW TRIGGERS LIKE ‘btaglog”: Got error 28 from storage engine (1030)

2012年3月25日 沒有評論

最近準備測試一下mysql的MyISAM與InnorDB存儲引擎的性能,在使用mysqldump備份數據的時候出現如標題的錯誤,網上查了一下,有人說是殺毒軟件的問題,有人說是tmp目錄太小了,由于是在linux下,可以排除殺毒軟件的問題,那就是tmp目錄太小了,使用df命令查看了一下硬盤的使用情況,發現硬盤全部占滿,這就是造成出錯的原因。曾經也碰到過由于硬盤可用空間過小的原因導致mysql服務器不能啟動的事情。

分類: MySQL 標簽:

mysql 導入亂碼問題

2012年3月25日 沒有評論

把文件中的數據導入到mysql表中時可能會碰到亂碼的問題,造成亂碼的根源就是編碼問題,涉及到編碼的有數據庫和數據文件。要想導入時避免不出現亂碼,只要保證數據文件的編碼和導入時甚至的編碼一直即可,注意:不是和數據庫的編碼一致。例如:數據文件data.sql,編碼為UTF-8,使用如下命令:

    mysql -uroot -p --default-character-set=utf8 db < data.sql

這時不管數據使用的何種編碼,都不會出現亂碼的。當然如果你知道當前mysql客戶端使用的默認編碼和數據文件的編碼集是一樣的,那么可以省略上述編碼設置。

Linux虛擬內存學習筆記

2012年3月20日 沒有評論

最近學習了一下關于虛擬內存方面知識,記錄幾個比較有價值的網址。

Linux虛擬內存實現原理

http://blog.nosqlfan.com/html/2956.html

Linux環境進程間通信(五): 共享內存(上)

http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html

分類: Linux 標簽:

修改open free chart bar圖的寬度

2012年3月18日 沒有評論

用open free chart來顯示bar(柱狀)圖時,bar的寬度是x軸的長度以及x軸元素個數有關,默認的寬度是:x軸的長度除以元素個數乘以0.8,當x軸的原始個數比較少,那么bar的寬度就比較寬,可能顯示的圖不美觀。

可以通過修改源代碼重新編譯來改變bar的默認寬度,關于如果編譯open free chart,可以參考:自己動手編譯Open Flash Chart

修改文件位于根目錄下的ScreenCoords.as文件中,在public function get_bar_coords( index:Number, group:Number ):Object 函數中 默認設置為:

var bar_set_width:Number = item_width*0.8;

可以自己根據需要設置,可以設置固定值,也可以調整比例,例如把0.8調整至0.5,修改后重新編譯就可以。

分類: web前端 標簽:

無覓相關文章插件,快速提升流量

30选5怎么中奖