0

以下は私が書いたスクリプトです。

#!/usr/bin/expect -f
#!/bin/bash

# connect via scp

Y_DATE=`$(date --date yesterday "+%Y-%m-%d")`

spawn scp /apps/Train/jboss-soa-p.5.0.0/jboss-as/server/default/log/server.log.$Y_DATE  "xxxx@Tdev:/apps/software/copiedLogFiles/"

expect "password:"
send "buildadmin\$123\r"
expect "*\r"
expect "\r"

スクリプトの実行中にエラーが発生しています。

can't read "(date --date yesterday "+%Y-%m-%d")": no such variable
    while executing
"Y_DATE=`$(date --date yesterday "+%Y-%m-%d")`"
    (file "./copySITtoUAT_CDS.sh" line 6)

Y_DATE 宣言のエラーの原因がわかりません。ここで何かが足りないのですか?

4

3 に答える 3

2

多分それはこれです:あなたはどちらかを使うことができます

Y_DATE=$(date --date yesterday "+%Y-%m-%d")

また

Y_DATE=`date --date yesterday "+%Y-%m-%d"`

しかし、両方ではありません。

于 2013-02-06T14:09:17.030 に答える
0

以下のようにスクリプトを修正したところ、うまくいきました。

#!/bin/sh

LOG_DIR=/apps/jboss/jboss-soa-p.5.0.0/jboss-as/server/mssql_prod1/log
SRS_HOST=XPSIT
USER_ID=xambas
PSWD=abackc
Y_DIR=`find $LOG_DIR -name "server.log*" \( -mtime -1 -and -not -daystart -mtime 0 \)`
cd $LOG_DIR
Y_FILE=`find . -name "server.log*" \( -mtime -1 -and -not -daystart -mtime 0 \)`
cd -
export Y_FILE SRS_HOST USER_ID PSWD Y_DIR

expect -c '
        spawn scp "$env(Y_DIR)" "$env(USER_ID)@$env(SRS_HOST):/apps/soft/Prod_LOG/Prod_A/$env(Y_FILE)"
        expect "password:"
        send "$env(PSWD)\r"
        expect "*\r"
        expect "\r"
于 2013-02-12T14:05:34.557 に答える