私はbashでcurlを含むhtmlファイルをダウンロードしようとしています。このサイトのように:http: //www.registrar.ucla.edu/schedule/detselect.aspx?termsel = 10S&subareasel = PHYSICS&idxcrs = 0001B +++
手動でダウンロードすると、正常に動作します。ただし、crontabを使用してスクリプトを実行しようとすると、出力htmlファイルは非常に小さく、「オブジェクトはここに移動しました」とだけ表示されます。壊れたリンクで。これは、crontabコマンドが実行するスパース環境と関係がありますか?私はこの質問を見つけました:
しかし、私はphpではなくbashを使用しています。bashでこの問題を修正するために設定する同等のコマンドラインオプションまたは変数は何ですか?
(wgetではなくcurlでこれを実行したい)
編集:まあ、ファイルを手動で(インタラクティブシェルを介して)ダウンロードすることは機能することもありますが、機能しないこともあります(「オブジェクトはここに移動しました」というメッセージが表示されます)。したがって、特にcronの環境の問題ではなく、curl自体の問題である可能性があります。
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
編集:問題は解決しました。問題は、URLの漂遊タグでした。これは、スクリプトを生成するために実行していて、sedがのすべてのインスタンスを正規表現sed s,"<URL>",\""$url"\", template.txt > test.sh
に置き換えたためです。URLを修正した後、カールは正常に機能します。&
<URL>