下面是我写的脚本。
#!/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声明中的错误是什么?我是不是漏掉了什么。
发布于 2013-02-06 22:09:17
也许是这样的:你可以使用
Y_DATE=$(date --date yesterday "+%Y-%m-%d")或
Y_DATE=`date --date yesterday "+%Y-%m-%d"`但不是两个都有。
发布于 2013-02-12 22:05:35
我修改了我的脚本,如下所示,它起作用了。
#!/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"发布于 2016-02-05 19:09:18
下面的代码可以工作:
Y_DATE=`date --date yesterday +%Y-%m-%d`https://stackoverflow.com/questions/14731026
复制相似问题