摘要: 做技術支持
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' |\
#刪除&
sed -e 's/\&\;/\//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分區情況
發現已經有2個SWAP分區了,空間這下子夠了,可以繼續安裝了
?
2
:也可已采用直接增加SWAP方式(我沒有采用這樣的辦法)
?
?
?
?
?
?
posted @
2006-10-23 11:13 小小程序程序員混口飯吃 閱讀(2180) |
評論 (0) |
編輯 收藏