telnetを使用してdebianからWindowsサーバーに接続する小さなスクリプトがあります。
サーバー上にipsとpathを含むテキストファイルがあります。
192.168.1.1 c:\rs_obj\data
192.168.1.2 c:\rs_obj\data
192.168.1.3 c:\new_obj\data
各サーバーには、データ用の独自のパスがあります。
これがメインスクリプトです
while IFS=" ": read -r ip path; do
nohup ./tl.sh $ip $path >> tl_$ip.log &
done < srv_list.txt
ここにtl.shがあります
#!/bin/bash
echo $(date) : $1 $2
expect -f-<<EOF
set timeout 20
spawn telnet $1
expect "login: "
send "...\r"
expect "password: "
send "...\r"
expect "*="
send 'cd "$2"\r'
expect "data>"
....
send "exit\r"
EOF
exit
問題はWindowsパスにあります-正しい文字列を行に渡す方法send "cd $2\r"
(バックスラッシュや\ r \ nなどをエスケープする)?