我試圖用bash下載一個捲曲的html文件。喜歡本網站: http://www.registrar.ucla.edu/schedule/detselect.aspx?termsel=10S&subareasel=PHYSICS&idxcrs=0001B+++curl:從動態url下載
當我手動下載它時,它工作正常。但是,當我嘗試通過crontab運行我的腳本時,輸出html文件非常小,只是說「對象移到這裏。」與一個斷開的鏈接。這是否與crontab命令運行它的稀疏環境有關?我發現這個問題:
php ssl curl : object moved error
但我使用bash,而不是PHP。什麼是等效的命令行選項或變量來設置解決這個問題在bash中?
(我想,捲曲要做到這一點,而不是wget的)
編輯:嗯,有時候手動下載文件(通過交互shell)的作品,但有時它不會(我仍然得到「合同 - 這裏「消息)。所以它可能不是一個明確的問題與cron的環境,但捲曲本身。
的cron項:
* * * * * ~/.class/test.sh >> ~/.class/test_out 2>&1
test.sh:
#! /bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/sbin
cd ~/.class
course="physics 1b"
url="http://www.registrar.ucla.edu/schedule/detselect.aspx?termsel=10S<URL>subareasel=PHYSICS<URL>idxcrs=0001B+++"
curl "$url" -sLo "$course".html --max-redirs 5
編輯:問題解決了。問題是網址中的流浪標籤。這是因爲我在做sed s,"<URL>",\""$url"\", template.txt > test.sh
來生成腳本,sed用正則表達式<URL>
替換了&
的所有實例。修復url後,curl工作正常。
使用-L選項有幫助,但它不能解決它。它沒有「對象移到這裏」消息,但它下載的頁面只有站點的錯誤消息 - 「系統當前不可訪問或脫機」,而不是它想要的頁面。 – anoda9 2010-04-01 00:17:16
是的,我正在使用相同的URL進行測試。 我沒有.bashrc文件,我不知道,如果採購環境的腳本將幫助.. – anoda9 2010-04-01 00:19:30
良好的漁獲物,它是有點不同。我使用sed將URL替換爲腳本,並且我不知道替換字段中「&」字符的行爲。謝謝。 – anoda9 2010-04-01 07:24:35