Вы можете использовать этот модифицированный скрипт. Вы должны использовать set timeout 2000
перед mget
.
#!/bin/bash
dirdate=`/bin/date +%Y%m%d -d "1 day ago"`
INPUT_DIR="/root/SDP_BHC/input"
CREDENTIALS_FILE="/root/FTP_TEST/Credentials.csv"
# Loop to read credentials and other details from an external file.
while IFS=','; read node_id node_name ip1 ip2 ip3 user1 pass1 user2 pass2 user3 pass3 installed location circle sdpno hwtype
do
# Generate Input Directory for IP-Node
mkdir -p $INPUT_DIR/"$node_id"/"$node_name"/IP/"$dirdate"
echo -e "\n[INFO] Node IP: $ip1"
echo -e "=============================\n"
SOURCE_FILE="/var/opt/fds/statistics/*PSC-TrafficHandler_8*1_A_*_System*$dirdate*stat"
TARGET_DIR="$INPUT_DIR/$node_id/$node_name/IP/$dirdate"
set prompt "(%|#|\\$|%\]) $"
spawn /usr/bin/sftp $user1@$ip1
expect { "$prompt" }
#expect "Are you sure you want to continue connecting (yes/no)?"
#bin prompt
send "yes\r"
#expect "Password:"
expect { "$prompt" }
send "$pass1\r"
expect "sftp>"
set timeout 2000;
send "mget $SOURCE_FILE $TARGET_DIR\r"
expect "sftp>"
send "bye\r"
EOD
.
.
.
done < $CREDENTIALS_FILE
Я думаю, nginx
работает под другим пользователем. И по умолчанию монтирования sshfs
видны только пользователю, который их монтирует.
Поэтому (по умолчанию)nginx
не видит файлы.
Есть варианты sshfs
/fuse
(sshfs
— это fuse
файл -система ). чтобы сделать их более заметными. (Не помню, но это есть в руководстве ).