<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-109  評論-187  文章-25  trackbacks-0
     
         摘要: 做技術支持 2 個月了,也就是說有 2 個月沒有碰代碼了,手都很生了,最近遇到項目大的并發問題,數據也有些不太正確,就想到了項目中,由于模塊過多,異步的情況也有發生,所以想到事務與鎖的相關知識,先寫一點事務相關的理解,然后寫一點鎖相關的東西,以便加深自己的理解。 ? ...  閱讀全文
    posted @ 2006-11-16 13:48 小小程序程序員混口飯吃 閱讀(2770) | 評論 (3)編輯 收藏
    最近韓國房價失控上漲,有關職能部門3高官引咎辭職.

    房價瘋漲在中國似乎是司空見慣,習以為常,老百姓也幾乎麻木,買不起房子的年輕人只能坐以待斃,泱泱大國除了幾個學者能夠抨擊一下之外,好像沒有人說要出來承擔責任,政府跟房地產商一個論調,
    社會需求導致房價不可能跌。房產商可以控制一些主流的媒體,就跟一些民辦學校控制當地的報紙一樣,你們敢揭露我,我就不去你們那里打廣告,一年讓你們少賺個幾百萬,這些主流媒體當然不會放棄
    這么大的搖錢樹,也就厚著臉去低三下四了。房子還是瘋了一樣的漲,恐怕永遠沒有父母官出來辭職的
    除非被利益集團排擠下來。地價高,商業賄賂,行業不正規,職能部門的監管,以及法制整體不健全導致房價瘋長,歸根結底:房價高總是由上層的利益集團控制的,老百姓只能嘆氣的份。

    聯想到,最近臺灣政壇,至少那也是民主,香港一個歌星的老爹收了幾百萬港元就是特大受賄罪犯,這在中國簡直是小巫見大巫,種種情況表明大陸還是有差距的,不過最新全球廉政指數,中國上升了10多位,我們也相信是新一代政府正在加強這方面的建設。我愛我的國家,我有理由相信,新一代政府會越來越好,大家拭目以待。

    加油中國!


    posted @ 2006-11-16 08:51 小小程序程序員混口飯吃 閱讀(702) | 評論 (2)編輯 收藏
         摘要: 文章轉自網上好像是玉米田的,忘記了鎖( locking ) 業務邏輯的實現過程中,往往需要保證數據訪問的排他性。如在金融系統的日終結算 處理中,我們希望針對某個 cut-off 時間點的數據進行處理,而不希望在結算進行過程中 ...  閱讀全文
    posted @ 2006-11-15 08:35 小小程序程序員混口飯吃 閱讀(51671) | 評論 (23)編輯 收藏
    一個傻子買了3個大餅,吃了前兩個都沒吃飽,到第三個才吃飽。于是嘆道:早知道,我就只買第三個了,前兩個餅沒用.我們又何嘗不是這種人?我們也經常喟嘆自己不能成功。
    ???? 其實沒有人能夠隨便成功,一口吃飽也是不可能的,所以平時必須打好基礎,成功總是屬于有準備的人,平時多積累,說不定哪天就會成功!
    posted @ 2006-11-10 13:26 小小程序程序員混口飯吃 閱讀(383) | 評論 (0)編輯 收藏
    超市自造三千元筆記本10天賣出5臺,這是剛剛在DONEWS上看到的消息,據物美集團副總裁吳堅中介紹,這款自有品牌筆記本電腦定名為“優宜”,意為“質優價廉”,由物美和合作廠家威盛電子(中國)有限公司聯合推出。據其介紹,這款筆記本電腦最低售價才3200元一臺,配置稍好的價格才3649元。

    原來生產廠家開始物色新的渠道,傳統的大商場 ,家電賣場,已經沒有太多的利潤點,就是說渠道把廠家的利潤給吃個差不多了,廠家必須尋找新的渠道,既給國美等大賣場施加了壓力,又給自己尋找了利潤空間,消費者也得到了實惠,看樣子這款比較本只是廠家小試牛刀,如果這種模式能夠成功,畢竟帶來賣場新一輪沖擊,在中國得渠道者得天下,廠商賣本子在傳統賣場賺得試賣白菜得錢,利潤都被渠道壓縮了。
    我們拭目以待。
    posted @ 2006-11-08 09:07 小小程序程序員混口飯吃 閱讀(634) | 評論 (3)編輯 收藏
    find 命令在linux中是很常用到的一個查找命令,它的功能非常地強大。可以結合正則匹配來搜索系統中的指定的內容,以下我就記錄一下這個find常用到的一些用法

    ?

    首先我們來看年find的總體用法

    find path option [-print -exec -ok]

    其中path是指定在哪個路徑中查找內容。如/var下查找內容,option是find中的一些屬性值,常用的有-name,-type,-mtime,-ctime,-atime,-user,-group,-nouser,-nogroup,-perm等,[-print -exec -ok]是可選屬性值,-print是指把查找到的內容輸出到指定的地方,-exec與-ok都是執行另處的command命令,但兩都也有一點不同,-exec在執行指定的command時不會給用戶顯示提示或操作信息,但是-ok就會在有提示詢問操作時給用戶顯示信息,直到用戶做了選擇時才繼續執行。

    ?

    常用的option值說明

    -name 指定查找的內容是文件。

    -type 指定查找的文件的類型,它有d,l,b,p,f,c等文件類型,d是查找目錄,l是查找鏈接檔,b是查找塊文件,p是查找管道文件,f是普通文件,c是字符設備文件

    -mtime,-ctime,atime都是指按時間查找,-mtime是文件的修改時間,-ctime是文件的創建時間,atime是后找開文件時間

    -user是查找指定用戶帳號的文件

    -group是查找指定組帳號的文件

    -nouser查找無用戶帳號文件

    -nogroup是查找無組帳號文件

    ?

    下面舉幾個例子說明一下find的用法

    (1)我想找出/etc目錄下是passw開頭的所有文件

    ?? find /etc -name "passw*"?

    這個例子中"*"號是正則匹配中的“所有”的意思

    (2)我想找出/var/log目錄下所有的前5天的.log文件

    ?? find /var/log -name "*.log" -mtime +5

    這個例子中"+5"是指5天以前的文件,如是查"-5"則是5天以內的文件

    (3)我想找出/home目錄下是"ygl"這個用戶的文件

    ?? find /home -user "ygl"

    (4)我想找出/home目錄下是"ygl"這個用戶的所有的普通檔的文件

    ?? find /home -user "ygl" -type f

    (5)我想找出/var/log目錄下的所有的.log文件并查看它的詳細信息

    ?? find /var/log -name "*.log" -type f -exec ls -l {} \;

    這個例子中用到了可選屬性-exec用來執行ls命令,其中的-exec或者-ok的用法都要在它所執行的command后面接" {} \;"

    (6)我想查找出在/etc中以passw開頭的所有文件中有沒有ygl這些內容的

    ?? find /etc -name "passw*" -exec grep -in "ygl" {} \;

    posted @ 2006-11-06 09:34 小小程序程序員混口飯吃 閱讀(662) | 評論 (0)編輯 收藏
    安裝

    查看軟件xxx安裝內容

    *

    dpkg -L xxx

    查找軟件

    *

    apt-cache search 正則表達式

    查找文件屬于哪個包

    *

    dpkg -S filename
    apt-file search filename

    查詢軟件xxx依賴哪些包

    *

    apt-cache depends xxx

    查詢軟件xxx被哪些包依賴

    *

    apt-cache rdepends xxx

    增加一個光盤源

    *

    sudo apt-cdrom add

    系統升級

    *

    sudo apt-get update
    sudo apt-get dist-upgrade

    清除所以刪除包的殘余配置文件

    *

    dpkg -l |grep ^rc|awk '{print $2}' |tr ["\n"] [" "]|sudo xargs dpkg -P -

    編譯時缺少h文件的自動處理

    *

    sudo auto-apt run ./configure

    查看安裝軟件時下載包的臨時存放目錄

    *

    ls /var/cache/apt/archives

    系統

    查看內核

    *

    uname -a

    查看Ubuntu版本

    *

    cat /etc/issue

    查看內核加載的模塊

    *

    lsmod

    查看PCI設備

    *

    lspci

    查看USB設備

    *

    lsusb

    查看網卡狀態

    *

    sudo ethtool eth0

    查看CPU信息

    *

    cat /proc/cpuinfo

    顯示當前硬件信息

    *

    lshw

    硬盤

    查看硬盤的分區

    *

    sudo fdisk -l

    查看硬盤剩余空間

    *

    df -h
    df -H

    查看目錄占用空間

    *

    du -hs 目錄名

    優盤沒法卸載

    *

    sync
    fuser -km /media/usbdisk

    內存

    查看當前的內存使用情況

    *

    free -l

    進程

    查看當前有哪些進程

    *

    ps -A

    中止一個進程

    *

    kill 進程號(就是ps -A中的第一列的數字)
    或者 killall 進程名

    強制中止一個進程(在上面進程中止不成功的時候使用)

    *

    kill -9 進程號
    或者 killall -9 進程名

    查看當前進程的實時狀況

    *

    top

    查看進程打開的文件

    *

    lsof -p

    ADSL

    配置 ADSL

    *

    sudo pppoeconf

    ADSL手工撥號

    *

    sudo pon dsl-provider

    激活 ADSL

    *

    sudo /etc/ppp/pppoe_on_boot

    斷開 ADSL

    *

    sudo poff

    查看撥號日志

    *

    sudo plog

    網絡

    根據IP查網卡地址

    *

    arping IP地址

    查看當前IP地址

    *

    sudo ifconfig eth0 |awk '/inet addr/ {split($2,x,":");print x[2]}'

    查看當前外網的IP地址

    *

    w3m -no-cookie -dump www.ip138.com|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'
    w3m -no-cookie -dump ip.loveroot.com|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

    查看當前監聽80端口的程序

    *

    lsof -i :80

    查看當前網卡的物理地址

    *

    sudo arp -a | awk '{print $4}'
    sudo ifconfig eth0 | head -1 | awk '{print $5}'

    立即讓網絡支持nat

    *

    sudo echo 1 > /proc/sys/net/ipv4/ip_forward
    sudo iptables -t nat -I POSTROUTING -j MASQUERADE

    查看路由信息

    *

    netstat -rn
    sudo route -n

    手工增加刪除一條路由

    *

    sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
    sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1

    修改網卡MAC地址的方法

    *

    sudo ifconfig eth0 down #關閉網卡
    sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #然后改地址
    sudo ifconfig eth0 up #然后啟動網卡

    統計當前IP連接的個數

    *

    netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n
    netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n

    統計當前20000個IP包中大于100個IP包的IP地址

    *

    tcpdump -tnn -c 20000 -i eth0 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | awk ' $1 > 100 '

    屏蔽IPV6

    *

    echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6

    服務

    添加一個服務

    *

    sudo update-rc.d 服務名 defaults 99

    刪除一個服務

    *

    sudo update-rc.d 服務名 remove

    臨時重啟一個服務

    *

    /etc/init.d/服務名 restart

    臨時關閉一個服務

    *

    /etc/init.d/服務名 stop

    臨時啟動一個服務

    *

    /etc/init.d/服務名 start

    設置

    配置默認Java使用哪個

    *

    sudo update-alternatives --config java

    修改用戶資料

    *

    sudo chfn userid

    給apt設置代理

    *

    export http_proxy=http://xx.xx.xx.xx:xxx

    修改系統登錄信息

    *

    sudo vim /etc/motd

    中文

    轉換文件名由GBK為UTF8

    *

    sudo apt-get install convmv
    convmv -r -f cp936 -t utf8 --notest --nosmart *

    轉換文件內容由GBK為UTF8

    *

    iconv -f gbk -t utf8 $i > newfile

    轉換 mp3 標簽編碼

    *

    sudo apt-get install python-mutagen
    find . -iname “*.mp3” -execdir mid3iconv -e GBK {} \;

    文件

    快速查找某個文件

    *

    whereis filename

    *

    find 目錄 -name 文件名

    查看文件類型

    *

    file filename

    顯示xxx文件倒數6行的內容

    *

    tail -n 6 xxx

    查找包含xxx字符串的文件

    *

    grep -l -r xxx .

    查找關于xxx的命令

    *

    apropos xxx
    man -k xxx

    通過ssh傳輸文件

    *

    scp -rp /path/filename username@remoteIP:/path #將本地文件拷貝到服務器上
    scp -rp username@remoteIP:/path/filename /path #將遠程文件從服務器下載到本地

    查看某個文件被哪些應用程序讀寫

    *

    lsof 文件名

    把所有文件的后輟由rm改為rmvb

    *

    rename 's/.rm$/.rmvb/' *

    把所有文件名中的大寫改為小寫

    *

    rename 'tr/A-Z/a-z/' *

    刪除特殊文件名的文件,如文件名:--help.txt

    *

    rm -- --help.txt 或者 rm ./--help.txt

    查看當前目錄的子目錄

    *

    ls -d */. 或 echo */.

    壓縮

    解壓縮 xxx.tar.gz

    *

    tar -zxvf xxx.tar.gz

    解壓縮 xxx.tar.bz2

    *

    tar -jxvf xxx.tar.bz2

    壓縮aaa bbb目錄為xxx.tar.gz

    *

    tar -zcvf xxx.tar.gz aaa bbb

    壓縮aaa bbb目錄為xxx.tar.bz2

    *

    tar -jcvf xxx.tar.bz2 aaa bbb

    Nautilus

    顯示隱藏文件

    *

    Ctrl+h

    顯示地址欄

    *

    Ctrl+l

    特殊 URI 地址

    *

    * computer:/// - 全部掛載的設備和網絡
    * network:/// - 瀏覽可用的網絡
    * burn:/// - 一個刻錄 CDs/DVDs 的數據虛擬目錄
    * smb:/// - 可用的 windows/samba 網絡資源
    * x-nautilus-desktop:/// - 桌面項目和圖標
    * file:/// - 本地文件
    * trash:/// - 本地回收站目錄
    * ftp:// - FTP 文件夾
    * ssh:// - SSH 文件夾

    查看已安裝字體

    *

    在nautilus的地址欄里輸入”fonts:///“,就可以查看本機所有的fonts

    程序

    詳細顯示程序的運行信息

    *

    strace -f -F -o outfile <cmd>

    日期和時間

    設置日期

    *

    #date -s mm/dd/yy

    設置時間

    *

    #date -s HH:MM

    將時間寫入CMOS

    *

    hwclock --systohc

    讀取CMOS時間

    *

    hwclock --hctosys

    控制臺

    不同控制臺間切換

    *

    Ctrl + ALT + ←
    Ctrl + ALT + →

    指定控制臺切換

    *

    Ctrl + ALT + Fn(n:1~7)

    控制臺下滾屏

    *

    SHIFT + pageUp/pageDown

    控制臺抓圖

    *

    setterm -dump n(n:1~7)

    數據庫

    mysql的數據庫存放在地方

    *

    /var/lib/mysql

    從mysql中導出和導入數據

    *

    mysqldump 數據庫名 > 文件名 #導出數據庫
    mysqladmin create 數據庫名 #建立數據庫
    mysql 數據庫名 < 文件名 #導入數據庫

    忘了mysql的root口令怎么辦

    *

    sudo /etc/init.d/mysql stop
    sudo mysqld_safe --skip-grant-tables &
    sudo mysqladmin -u user password 'newpassword''
    sudo mysqladmin flush-privileges

    修改mysql的root口令

    *

    sudo mysqladmin -uroot -p password '你的新密碼'

    其它

    下載網站文檔

    *

    wget -r -p -np -k http://www.21cn.com
    · -r:在本機建立服務器端目錄結構;
    · -p: 下載顯示HTML文件的所有圖片;
    · -np:只下載目標站點指定目錄及其子目錄的內容;
    · -k: 轉換非相對鏈接為相對鏈接。

    刪除Totem電影播放機的播放歷史記錄

    *

    rm ~/.recently-used

    在桌面上顯示計算機,HOME,回收站等圖標

    *

    gconf-editor
    找到apps-->nautilus-->desktop
    勾選相應選項

    Gaim聲音設置

    *

    首選項->聲音->聲音方式,方式選“命令”,下面的聲音命令填上“aplay %s”

    清除apt-get cache

    *

    sudo apt-get clean
    posted @ 2006-11-02 14:09 小小程序程序員混口飯吃 閱讀(610) | 評論 (0)編輯 收藏

    網上轉載的,試過,確實能用,這是手動增加SWAP的一個很好的方式,建議在安裝LINUX的時候開始就要建一個SWAP,最好是內存的2倍。
    linux中增加swap分區文件的步驟方法:

    1、檢查當前的分區情況(使用free -m或cat /proc/swaps ):
    ?[root@db2 root]# free -m
    ????????????? total?????? used?????? free???? shared??? buffers???? cached
    ?Mem:????????? 1006???????? 84??????? 922????????? 0???????? 11???????? 38
    ?-/+ buffers/cache:???????? 35??????? 971
    ?Swap:??????????? 0????????? 0????????? 0
    ?[root@db2 root]#

    2、增加交換分區文件及大小:
    檢查沒有swap,下面就需要增加:
    判定新交換文件的大小,將大小乘以1024來判定塊的大小。例如,大小為64MB的交換文件的塊大小為65536,在 shell 提示下以根用戶身份鍵入以下命令,其中的 count 等于想要的塊大小。

    ?[root@db2 root]# dd if=/dev/zero of=/home/swap bs=1024 count=1024000
    ?1024000+0 records in
    ?1024000+0 records out
    ?[root@db2 root]#

    使用以下命令來設置交換文件:
    ?[root@db2 root]# mkswap /home/swap
    ?Setting up swapspace version 1, size = 1023996 KiB
    ?[root@db2 root]#

    3、啟用交換分區文件:
    要立即啟用交換文件而不是在引導時自動啟用,使用以下命令:
    ?[root@db2 root]# swapon /home/swap

    檢查增加后的交換情況:?
    ?[root@db2 root]# free -m
    ????????????? total?????? used?????? free???? shared??? buffers???? cached
    ?Mem:????????? 1006??????? 994???????? 12????????? 0????????? 4??????? 929
    ?-/+ buffers/cache:???????? 60??????? 946
    ?Swap:????????? 999????????? 0??????? 999
    ?[root@db2 root]#
    ?
    要在引導時啟用,編輯 /etc/fstab 文件來包含以下行(/home/swap?????????????? swap??????????????????? swap??? defaults??????? 0 0 ):
    ?[root@db2 root]# vi /etc/fstab
    ?LABEL=/???????????????? /?????????????????????? ext3??? defaults??????? 1 1????? ?
    ?LABEL=/boot???????????? /boot?????????????????? ext2??? defaults??????? 1 2????? /home/swap?????????????? swap??????????????????? swap??? defaults??????? 0 0
    ??????? none??????????????????? /dev/pts??????????????? devpts? gid=5,mode=620? 0 0?????
    ??????? none??????????????????? /proc?????????????????? proc??? defaults??????? 0 0?????
    ??????? none??????????????????? /dev/shm??????????????? tmpfs?? defaults??????? 0 0?????
    ??????? LABEL=/usr????????????? /usr??????????????????? ext3??? defaults??????? 1 2?????
    ??????? /dev/sda5?????????????? swap??????????????????? swap??? defaults??????? 0 0?????
    ??????? /dev/cdrom????????????? /mnt/cdrom????????????? iso9660 noauto,owner,kudzu,ro 0 0
    ??????? /dev/fd0??????????????? /mnt/floppy???????????? auto??? noauto,owner,kudzu 0 0??
    ??????? /home/swap?????????????? swap??????????????????? swap??? defaults??????? 0 0??
    系統下次引導時,它就會啟用新建的交換文件?????????
    再次檢查添加后的情況:
    ?[root@db2 oracledb]# free -m????????????????????????????????????????????
    ???????????????????? total?????? used?????? free???? shared??? buffers???? cached
    ??????? Mem:????????? 1006??????? 979???????? 27????????? 0????????? 6??????? 917
    ??????? -/+ buffers/cache:???????? 54??????? 952????????????????????????????????
    ??????? Swap:????????? 999????????? 0??????? 999????????????????????????????????
    ??????? [root@db2 oracledb]#?????

    posted @ 2006-11-02 13:49 小小程序程序員混口飯吃 閱讀(4399) | 評論 (0)編輯 收藏
    #!/bin/bash
    #Copyright (c) 2005 ubuntu.org.cn
    #License: GPLv2

    #需要安裝編碼轉換器
    #sudo apt-get install recode

    #mp3的地址
    SOURCE="http://list.mp3.baidu.com/list/newhits.html"

    #保存mp3的目錄
    SAVE="${HOME}/mp3100"

    #下載重試次數
    TRYCOUNT=2

    #臨時目錄
    TMP="/tmp/${USER}"

    #創建下載目錄
    if [ ! -d "${SAVE}" ];then
    ? ? mkdir -p "${SAVE}"
    fi

    #創建臨時下載目錄
    if [ ! -d "${TMP}" ];then
    ? ? mkdir -p "${TMP}"
    fi

    echo "開始下載百度最新100首歌曲列表"
    wget -O ${TMP}/mp3.html ${SOURCE}
    echo "下載百度最新100首歌曲列表完成。"

    #轉換網頁編碼
    iconv -f gbk -t utf8 ${TMP}/mp3.html |\

    grep "<a href=\"http://mp3.baidu.com/m" |\

    #將mp3list.txt所有開頭的空格去掉
    sed -e 's/ *//' |\

    #將mp3list.txt所有全角空格去掉
    sed -e 's/ //g' |\

    #將所有的回車符去掉
    sed ':a;N;$!ba;s/\n/,/g' |\

    #在td>,后面加上回車符,一行表示一個mp3文件。
    sed -e 's/,<td/\n<td/g' |\
    sed -e 's/td>,/td>\n/g' |\

    #刪除<td width="30%"> <td> </td> <td...FFFFFF"> <p> </p>
    sed -e 's/<td width="30%">//g' |\
    sed -e 's/<td>//g' |\
    sed -e 's/<\/td>//g' |\
    sed -e 's/<p>//g' |\
    sed -e 's/<\/p>//g' |\
    sed -e 's/<td.*FFFFFF">//g' |\

    #刪除</a>..."_blank">
    sed -e 's/<\/a>.*_blank">/-/g' |\
    sed -e 's/<\/a>.*_blank>/-/g' |\

    #刪除&amp;
    sed -e 's/\&amp\;/\//g' >${TMP}/mp3list.txt

    #得到:<a target="_blank">Baby ,Baby tell me-王心凌</a>

    #取得行號,循環
    line=$(awk 'END{print NR}' ${TMP}/mp3list.txt)
    i=1;
    while((i<=line));do
    ? ?downed=0;
    ? ?mpline=`awk 'NR=='"$i"'' ${TMP}/mp3list.txt`
    ? ?url=`echo $mpline | sed -e 's/<a href="http://g' | sed 's/\ target.*//g' | sed 's/"http://g' | cat`
    ? ?name=`echo $mpline | sed -e 's/.*_blank">//g' | sed -e 's/.*_blank>//g' |\
    ? ? ? ? sed -e 's/<\/a>//g' | sed -e 's/\//-/g' | sed -e 's/:/-/g'? | sed -e 's/"/'\''/g'? | cat`
    ?
    ? ?#檢查是否已經下載過這首歌,如果下載過,放棄
    ? ?if [ -e "${SAVE}/${name}.mp3" ] || [ -e "${SAVE}/${name}.wma" ]; then
    ? ? ? echo -e "\e[1;6m\e[1;31m發現 ${name} 下載過,忽略,繼續下一首。\e[1;6m\e[00m"
    ? ? ? ((i++))
    ? ? ? continue;
    ? ?fi

    ? ?echo "開始通過 $url 下載 $name";
    ? ?wget -O ${TMP}/down.html $url
    ? ?echo "獲取 $name 下載列表完成。";

    ? ?##### 找出有效的歌曲下載地址并根據下載文件的大小從大至少排序 ###############
    ? ?#down.txt為有效的下載地址
    ? ?iconv -f gbk -t utf8 -c ${TMP}/down.html | grep "<td height=\"28\" class=\"d\">" |\
    ? ?sed -e 's/.*<a href="http://g' | sed -e 's/" target=_blank>.*//g' |\
    ? ?sed '/mid/d' > ${TMP}/down.txt

    ? ?#size.txt為有效的下載文件大小
    ? ?iconv -f gbk -t utf8 -c ${TMP}/down.html | grep "M<\/td>" |\
    ? ?sed -e 's/<td class="t">//g' | sed -e 's/ M<\/td>//g' > ${TMP}/size.txt

    ? ?#down.txt與size.txt合并而在的down_size.txt文件中字段之間以" "作為分隔符
    ? ?paste -d ' ' ${TMP}/down.txt ${TMP}/size.txt > ${TMP}/down_size.txt

    ? ?#得到以下形式 (下載地址 文件大小)
    ? ?#http://wma2.7t7t.com/pycs/pycs/311/370247.Wma 1.2
    ? ?#http://snakelmq.hfxyd.com/milk/babybabytellme.mp3 3.2
    ? ?#http://bbsatt2.ccmove.com.cn/download/1280590/baby%20baby%20tell%20me%28PXC%D6%C6%D7%F7%29.mp3 0.3
    ? ?#http://vod.music165.com/music/song/new02/wxl_05.07.29/3.Wma 1.6
    ? ?#http://202.107.247.54/16/0406/94/3.wma 1.6

    ? ?#排序
    ? ?sort "+1nr" ${TMP}/down_size.txt > ${TMP}/down_size_sort.txt

    ? ?#去掉后面的尺寸
    ? ?sed 's/ .*$//' ${TMP}/down_size_sort.txt > ${TMP}/temp.txt
    ? ?
    ? ?##### 析取出mp3 的下載地址或 wma的下載地址 ##############
    ? ?grep -i "mp3$" ${TMP}/temp.txt > ${TMP}/down_mp3.txt
    ? ?grep -i "wma$" ${TMP}/temp.txt > ${TMP}/down_wma.txt

    ? ?downline_mp3=$(awk 'END{print NR}' ${TMP}/down_mp3.txt);
    ? ?downline_wma=$(awk 'END{print NR}' ${TMP}/down_wma.txt);
    ? ?echo -e "\e[1;6m\e[1;31m發現 ${downline_mp3} 個名為 ${name}.mp3 下載地址。\e[1;6m\e[00m"
    ? ?echo -e "\e[1;6m\e[1;31m發現 ${downline_wma} 個名為 ${name}.wma 下載地址。\e[1;6m\e[00m"
    ? ?# 初始化計數器
    ? ?j=1;
    ? ?# 優先下載mp3格式的歌曲
    ? ?while((j<=downline_mp3)); do
    ? ? ? mp3=`awk 'NR=='"$j"'' ${TMP}/down_mp3.txt`
    ? ? ? echo -e "\e[1;6m\e[1;31m正在下載${name}.mp3\e[1;6m\e[00m"
    ? ? ? wget -c --tries=$TRYCOUNT $mp3 -O "${TMP}/${name}.mp3"
    ? ? ? if [ "$?" = 0 ]; then
    ? ? ? ? ?if [ `file -ib "${TMP}/${name}.mp3" | sed -e 's/\/.*//g'` = "audio" ]; then
    ? ? ? ? ? ? mv "${TMP}/${name}.mp3" "${SAVE}/${name}.mp3"
    ? ? ? ? ? ? downed=1;
    ? ? ? ? ? ? break;
    ? ? ? ? ?else
    ? ? ? ? ? ? echo -e "\e[1;6m\e[1;31m下載 ${name}.mp3 文件無效,正在刪除重新下載\e[1;6m\e[00m"
    ? ? ? ? ? ? rm "${TMP}/${name}.mp3";
    ? ? ? ? ? ? ((j++))? ?
    ? ? ? ? ?fi
    ? ? ? else
    ? ? ? ? ?echo -e "\e[1;6m\e[1;31m下載 ${name}.mp3 文件無效,正在刪除重新下載\e[1;6m\e[00m"
    ? ? ? ? ?rm "${TMP}/${name}.mp3";
    ? ? ? ? ?((j++))
    ? ? ? fi
    ? ?done

    ? ?#如果下載成功繼續下其余的歌
    ? ?#continue用于跳過循環體中的后續命令
    ? ?if [ "$downed" = 1 ] ; then
    ? ? ? ((i++))
    ? ? ? echo -e "\e[1;7m\e[1;41m下載 $name 成功\e[1;7m\e[00m"
    ? ? ? continue;
    ? ?fi

    ? ?# 如果沒有mp3格式的則下載wma格式的歌
    ? ?j=1;
    ? ?while((j<=downline_wma)); do
    ? ? ? wma=`awk 'NR=='"$j"'' ${TMP}/down_wma.txt`
    ? ? ? echo -e "\e[1;6m\e[1;31m正在下載${name}.wma\e[1;6m\e[00m"
    ? ? ? wget -c --tries=$TRYCOUNT $wma -O "${TMP}/${name}.wma"
    ? ? ? if [ "$?" = 0 ]; then
    ? ? ? ? ?if [ `file -ib "${TMP}/${name}.wma" | sed -e 's/\/.*//g'` = "application" ]; then
    ? ? ? ? ? ? mv "${TMP}/${name}.wma" "${SAVE}/${name}.wma"
    ? ? ? ? ? ? downed=1;
    ? ? ? ? ? ? break;
    ? ? ? ? ?else
    ? ? ? ? ? ? echo -e "\e[1;6m\e[1;31m下載 ${name}.wma 文件無效,正在刪除重新下載\e[1;6m\e[00m"
    ? ? ? ? ? ? rm "${TMP}/${name}.wma";
    ? ? ? ? ? ? ((j++))? ?
    ? ? ? ? ?fi
    ? ? ? else
    ? ? ? ? ? echo -e "\e[1;6m\e[1;31m下載 ${name}.wma 文件無效,正在刪除重新下載\e[1;6m\e[00m"
    ? ? ? ? ? rm "${TMP}/${name}.wma";
    ? ? ? ? ? ((j++))
    ? ? ? fi
    ? ?done

    ? ?((i++))
    ? ?if [ "$downed" = 1 ] ; then
    ? ? ? echo -e "\e[1;7m\e[1;41m下載 $name 成功\e[1;7m\e[00m"
    ? ?else
    ? ? ? echo -e "\e[1;7m\e[1;41m下載 $name 失敗\e[1;7m\e[00m"
    ? ?fi
    done
    rm -fr ${TMP}
    exit 0

    原理是用wget下載下頁面來,然后用SED來提取頁面,提取到連接后下載

    posted @ 2006-10-27 15:41 小小程序程序員混口飯吃 閱讀(1160) | 評論 (1)編輯 收藏

    (1) ubuntu 6.06

    (2): 由于 ubuntu debian 的內核,所以要在 oracle 官方上下載 oracle-xe-universal_10.2.0.1-1.0_i386.deb

    ?

    開始安裝(先看下面要注意的問題,第四項)

    ?

    1:dpkg –I oracle-xe-universal_10.2.0.1-1.0_i386.deb

    ?

    出現一下問題

    ?

    正在解壓縮將用于更替的包文件 oracle-xe-universal ...

    dpkg :依賴關系問題使得 oracle-xe-universal 的配置工作不能繼續:

    ?oracle-xe-universal 依賴于 libaio (>= 0.3.96) | libaio1 (>= 0.3.96);然而:

    ? 軟件包 libaio還沒有被安裝。

    ? 軟件包 libaio1還沒有被安裝。

    dpkg :處理 oracle-xe-universal (--install)時出錯:

    ? 依賴關系問題 - 仍未被配置

    在處理時有錯誤發生:

    ?oracle-xe-universal

    ?

    原來是libaio缺少,沒有安裝,我就下載下來,是個rpm,然后安裝這個rpm

    ?

    sudo apt-get libaio-0.3.96-7.i386.rpm

    ?

    正在讀取軟件包列表... 完成

    正在分析軟件包的依賴關系樹... 完成

    E: 無法找到軟件包 libaio-0.3.96-7.i386.rpm

    ?

    真是郁悶反復試驗都不行

    ?

    ?

    放棄這樣安裝,到網上查找其他方案安裝libaio

    ?

    網上說采用apt-get -f install安裝方式可能自動獲取包

    ?

    ?

    apt-get -f? install 果然可以日志如下

    root@ubuntu:/home/oem# apt-get -f? install

    正在讀取軟件包列表... 完成

    正在分析軟件包的依賴關系樹... 完成

    正在更正依賴關系... 完成

    將會安裝下列額外的軟件包:

    ? libaio1

    下列【新】軟件包將被安裝:

    ? libaio1

    共升級了 0 個軟件包,新安裝了 1 個軟件包,要卸載 0 個軟件包,有 7 個軟件未被升級。

    1 個軟件包沒有被完全安裝或卸載。

    需要下載 5182B 的軟件包。

    解壓縮后會消耗掉 61.4kB 的額外空間。

    您希望繼續執行嗎?[Y/n]y

    獲取:1 http://mirror.lupaworld.com dapper/main libaio1 0.3.104-1ubuntu6 [5182B]下載 5182B,耗時 2s (2346B/s)

    選中了曾被取消選擇的軟件包 libaio1

    ( 正在讀取數據庫 ... 系統當前總共安裝有 76207 個文件和目錄。)

    正在解壓縮 libaio1 ( .../libaio1_0.3.104-1ubuntu6_i386.deb) ...

    正在設置 libaio1 (0.3.104-1ubuntu6) ...

    ?

    正在設置 oracle-xe-universal (10.2.0.1-1.0) ...

    Executing Post-install steps...

    You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.

    ?

    ?

    2

    ?

    root@ubuntu:/home/oem#? /etc/init.d/oracle-xe configure

    ?

    ?

    Oracle Database 10g Express Edition Configuration

    -------------------------------------------------

    This will configure on-boot properties of Oracle Database 10g Express

    Edition.? The following questions will determine whether the database should

    be starting upon system boot, the ports it will use, and the passwords that

    will be used for database accounts.? Press <Enter> to accept the defaults.

    Ctrl-C will abort.

    ?

    Specify the HTTP port that will be used for Oracle Application Express [8080]:8080

    ?

    Specify a port that will be used for the database listener [1521]:1521

    ?

    Specify a password to be used for database accounts.? Note that the same

    password will be used for SYS and SYSTEM.? Oracle recommends the use of

    different passwords for each database account.? This can be done after

    initial configuration:

    Confirm the password:

    ?

    Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:y

    ?

    Starting Oracle Net Listener...Done

    Configuring Database...

    ?

    Starting Oracle Database 10g Express Edition Instance...Done

    Installation Completed Successfully.

    To access the Database Home Page go to "http://127.0.0.1:8080/apex"

    ?

    ?

    ? 這就安裝完了?真是不可思以,比9I快很多啊,總共花了10幾分鐘,中間的配置少了好多啊。

    ?

    3 :訪問數據

    http://127.0.0.1:8080/apex

    根據設置的密碼沒有問題,能夠正確訪問

    ?

    ?

    4: 需要注意的問題:

    在剛開始安裝的時候可能出現一下問題

    ?

    root@ubuntu:/home/oem# dpkg -i oracle-xe-universal_10.2.0.1-1.0_i386.deb

    選中了曾被取消選擇的軟件包 oracle-xe-universal

    ( 正在讀取數據庫 ... 系統當前總共安裝有 73613 個文件和目錄。)

    正在解壓縮 oracle-xe-universal ( oracle-xe-universal_10.2.0.1-1.0_i386.deb) ...

    This system does not meet the minimum requirements for swap space.? Based on

    the amount of physical memory available on the system, Oracle Database 10g

    Express Edition requires 750 MB of swap space. This system has 711 MB

    of swap space.? Configure more swap space on the system and retry the installation.

    dpkg :處理 oracle-xe-universal_10.2.0.1-1.0_i386.deb (--install)時出錯:

    ? 子進程·pre-installation script·返回了錯誤號·1

    在處理時有錯誤發生:

    ?oracle-xe-universal_10.2.0.1-1.0_i386.deb

    ?

    這個問題是由于SWAP分區不夠的原因造成的,那就增加一個SWAP分區


    ?

    1 :采用文件的方式增加swap分區

    Dd if=/dev/zero of=/tmp/tmp.swap bs=1M count =100( 建立一個100M的文件)

    mkswap /tmp/tmp.swap( 標識swap文件)

    swapon /tmp/tmp.swap( 激活swap)

    修改/etc/fstab文件增加一行

    ?

    /tmp/tmp.swap swap swap defaluts 0 0

    Swapon –s 查看當前的swap分區情況

    發現已經有2SWAP分區了,空間這下子夠了,可以繼續安裝了

    ?

    2 :也可已采用直接增加SWAP方式(我沒有采用這樣的辦法)

    ?

    ?

    ?

    ?

    ?

    ?

    posted @ 2006-10-23 11:13 小小程序程序員混口飯吃 閱讀(2180) | 評論 (0)編輯 收藏
    僅列出標題
    共11頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    主站蜘蛛池模板: 亚洲免费综合色在线视频| 亚洲国产精品免费视频| 亚洲熟妇自偷自拍另欧美| 亚洲黄色免费电影| 亚洲国产综合91精品麻豆| 日本一区午夜艳熟免费| 亚洲中文字幕无码一久久区| 久久久久久噜噜精品免费直播| 久久亚洲国产精品123区| 国产成人无码免费网站| 亚洲综合色婷婷七月丁香| 中出五十路免费视频| 亚洲欧洲日产国码无码网站| eeuss免费天堂影院| 亚洲国产婷婷六月丁香| 精品国产污污免费网站| 久久精品国产亚洲av麻豆小说| 99久热只有精品视频免费观看17| 亚洲精品视频在线免费| 免费精品国偷自产在线在线 | 在线永久免费的视频草莓| 久久久久亚洲av无码专区喷水 | 国拍在线精品视频免费观看| 亚洲人成网站色在线观看| 日韩高清免费观看| 免费精品视频在线| 亚洲人色婷婷成人网站在线观看| A片在线免费观看| 亚洲综合激情六月婷婷在线观看| 97无码免费人妻超级碰碰夜夜 | 日韩免费在线视频| 中文字幕亚洲第一在线| 好吊妞998视频免费观看在线| 日本亚洲欧美色视频在线播放| 久久久久无码专区亚洲av| 18女人毛片水真多免费| 亚洲av成人中文无码专区| 亚洲国产精品成人精品无码区 | 免费A级毛片无码视频| 亚洲人成欧美中文字幕| 亚洲午夜久久久久久久久久|