iT邦幫忙

0

請問如何在 Linux command 中執行 http command 生成檔案 ?

我可以在網頁上生成CSV檔案,這部份需要手動,我如何能在liunx 下去執行像是"http://www.example.com/buglist.cgi?bug\_status=UNCONFIRMED&bug\_status=CONFIRMED&bug\_status=IN\_PROGRESS&classification=IND&classification=Tha&component=Issues&component=Requirements&query\_format=advanced&resolution=---&ctype=csv",這在browser上直接按 csv button 就可以自動下載,如果要在 linux 底下有辦法用 command 去執行嗎? curl可以嗎?有試過沒有成功.

2 個回答

10
wiseguy
iT邦超人 1 級 ‧ 2011-10-14 00:09:21
最佳解答

對啦!就是用 wget 當做瀏覽器去抓取某個 url 下來。
所以你的需求就是

<pre class="c" name="code">wget -O result.csv 'http://www.example.com/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&classification=IND&classification=Tha&component=Issues&component=Requirements&query_format=advanced&resolution=---&ctype=csv'

這樣它就會把那個 URL 抓成 result.csv 這個檔案,在你執行的目錄下了。

daniel418 iT邦新手 5 級 ‧ 2012-01-17 18:59:25 檢舉

thanks,終於搞定
把bugzilla 產生自動產生csv的script 貼上來,如果有需要的人可以直接使用哦

<pre class="c" name="code">#!/bin/bash
LANG=zh_TW.UTF-8; export LANG
#Get 檔案
/usr/bin/wget --output-document=bugs$(date +\-%Y\-%m\-%d).csv "http://www.example.com/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED%28Grey%29&bug_status=IN_PROGRESS%28Blue%29&classification=Global&classification=Indonesia&classification=Thailand&classification=Philippines&classification=Malaysia&columnlist=short_desc%2Cbug_severity%2Cassigned_to%2Cbug_status%2Ccomponent%2Ccf_localking%2Cclassification%2Ccf_latest&component=Issues&component=Requirements&list_id=1492&query_format=advanced&resolution=---&ctype=csv"
#將檔案轉成中文;csv 檔本身出來中文會變成亂碼
/usr/bin/vim +"set bomb | set fileencoding=utf-8 | wq" $(find . -type f -name bugs*.csv)
#烤貝 到samba server
mv -f bugs*.csv /var/www/html/bugzlilla/
#寄信出來確認report 產生完成
mutt -s "Bugzilla Report generated done!" yourmail@example.com < /tmp/buzilla.txt
daniel418 iT邦新手 5 級 ‧ 2012-01-17 19:00:32 檢舉

請將www.example.com 置換成自己的主機位址

我要發表回答

立即登入回答