1

これらのエラーが発生するのはなぜですか?

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

lftpを使用していることが原因でしょうか。

これが私の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='civicrm@example.org'
#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...
4

2 に答える 2

1

これは、$crmauthn の URL にアンパサンドが含まれているためです。一重引用符を使用すると、動作するはずです:

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

また:

crmauth="'?name='${drupalAuthUser}'&pass='${drupalAuthPass}'&key='${civicrmSiteKey}"
于 2011-07-30T17:51:17.363 に答える
0

lftpの代わりにリンクを使用します。

#!/bin/bash

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

imapHost="civicrm.example.org"
imapUser="civicrm@example.org"
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
于 2011-07-30T20:40:05.883 に答える