1. install expect module.
2. write logcollect.exp file
set USERNAME "fishyych" set CMD_PROMPT "]*" set REMOTE_SERVER [lindex $argv 0] set TARGET_FILENAME [lindex $argv 2] set TARGET_FOLDER [lindex $argv 1] set timeout 30 spawn ssh $USERNAME@jumpserver expect $CMD_PROMPT set timeout -1 send "scp $REMOTE_SERVER:/opt/tomcat/logs/catalina.out.1.gz ~/$TARGET_FILENAME\r" expect $CMD_PROMPT send "exit\r" set timeout -1 spawn scp $USERNAME@jumpserver:~/$TARGET_FILENAME $TARGET_FOLDER/$TARGET_FILENAME expect $CMD_PROMPT
3. write run.sh
#!/bin/sh TARGET_FOLDER="logbackup" cat serverlist | while read REMOTE_SERVER do echo "getting catalina.out from server $REMOTE_SERVER..." TARGET_FILENAME=`date +%F`-$REMOTE_SERVER-catalina.out.gz ./logcollect.exp $REMOTE_SERVER $TARGET_FOLDER $TARGET_FILENAME echo "log saved locally finished." done