2011-07-30 7 views
1

なぜこれらのエラーが発生しますか?私はlftpのまたは何を使用していますので、lftpがURLの一部を新しいコマンドとして解釈するのはなぜですか?

Unknown command pass=user. 
Unknown command key=site-key. 

はそれがだろうか?ここで

は私のbashスクリプトです:

#!/bin/sh 

########################################################################## 
# 
# Send queued CiviMail and process back channel for CiviCRM v2.2+ 
# Make this executable and invoke from cron every (say) 15 minutes 
# Not yet tested: no lock on this if previous cron hadn't finished 
# but civimail.cronjob.php and CiviMailProcessor.php are multi-entrant 
# 
########################################################################## 
# 
# Per-host configuration 
# 

drupalAuthUser='user' 
drupalAuthPass='password' 
civicrmSiteKey='site-key' 

imapHost='civicrm.example.org' 
imapUser='[email protected]' 
#imapPass='password' 
# 
# Prepare URL 
# 
crmbinurl="http://$imapHost/sites/all/modules/civicrm/bin" 
crmauthn="?name=$drupalAuthUser&pass=$drupalAuthPass&key=$civicrmSiteKey" 
# 
echo "Run Drupal cron then check for and send queued CiviMail" 
### Heading ## 
civimail="${crmbinurl}/civimail.cronjob.php${crmauthn}" 
echo $civ 
## Heading ##imail 
lftp -c "get $civimail > /dev/null" 
# 
# Wait 10 seconds 
# 
sleep 2 
# 
# echo "Process CiviMail backchannel" 
# 
backchan="${crmbinurl}/CiviMailProcessor.php${crmauthn}" 
echo $backchan 
## Heading ## 
lftp -c "get $backchan > /dev/null" 

./civicrmcron.shを実行し、この出力を与える:

Run Drupal cron then check for and send queued CiviMail 
http://civicrm.example.org/sites/all/modules/civicrm/bin/civimail.cronjob.php?name=user&pass=password&key=site-key 
Unknown command `pass=user'. 
Unknown command `key=site-key'. 
[22328] Moving to background to complete transfers... 
http://civicrm.example.org/sites/all/modules/civicrm/bin/civimail.cronjob.php?name=user&pass=password&key=site-key 
Unknown command `pass=user'. 
Unknown command `key=site-key'. 
[22332] Moving to background to complete transfers... 
+1

httpを使用しているので、私はwgetまたはcurlをお勧めします。 – arunkumar

+0

とwgetまたはcurlのコマンドは何ですか? – ibanezz

+0

'wget --quiet $ civimail'またはそれが出力を生成している場合は' wget $ civimail>/dev/null 2>&1'を出力しません – arunkumar

答えて

1

それは$ crmauthnのためにあなたのURLであるため、あなたのアンパサンドのです。あなたは、単一引用符を使用している場合はそれが動作するはずです:

crmauthn='?name='${drupalAuthUser}'&pass='${drupalAuthPass}'&key='${civicrmSiteKey} 

か:

crmauth="'?name='${drupalAuthUser}'&pass='${drupalAuthPass}'&key='${civicrmSiteKey}" 
+0

civicrm.example.org/sites/all/modules/civicrm/bin/civimail.cronjob.php?name=user\&pass=password\&key=site-keyこれはうまく動作しません – ibanezz

+0

これは、宣言しているような行を読み込んでいるようです新しい変数=その文字列の中の値:S – ibanezz

+1

@ibanezz申し訳ありませんが、私の悪い(電話で答えてはいけません)...アンパサンドは新しいコマンドを意味しないように一重引用符を使用してください。私は上記の私の答えを編集します。 – cmbuckley

0

使用リンク代わりの lftpのを。

#!/bin/bash 

drupalAuthUser="user" 
drupalAuthPass="password" 
civicrmSiteKey="site-key" 

imapHost="civicrm.example.org" 
imapUser="[email protected]" 
imapPass="password" 

crmbinurl="http://${imapHost}/sites/all/modules/civicrm/bin" 
crmauthn="?name=${drupalAuthUser}&pass=${drupalAuthPass}&key=${civicrmSiteKey}" 

echo "CiviMail CronJob" 
civimail="${crmbinurl}/civimail.cronjob.php${crmauthn}" 
echo " * ${civimail}" 
links -source ${civimail} > /dev/null 

sleep 2 

echo "Process CiviMail backchannel" 
backchan="${crmbinurl}/CiviMailProcessor.php${crmauthn}" 
echo " * ${backchan}" 
links -source $backchan > /dev/null 
関連する問題