Как перенаправить вывод в журнал из команды expect

переименуйте файл с именем, которое вы можете запомнить, а затем скопируйте его в / bin. Проверьте, введя имя недавно скопированной команды / файла. Если он работает, добавьте это имя в файл /etc/rc.local.

Надеюсь, это сработает для вас.

1
13.07.2017, 00:55
1 ответ

Просто перенаправьте вывод вашего вызоваexpect:

/usr/bin/expect -c '
set timeout -1
cd /$env(MOUNT_POINT)/$env(L_SID)/apps
spawn scp -pr apps$env(L_SRC_SID)@$env(APP_SERVER_1):/$env(SRC_MOUNT_POINT)/$env(L_SRC_SID)/apps/*.
expect {
        yes/no { send yes\r ; exp_continue }
        password: { send $env(SERVICE_PASS)\r }
}
expect eof
' >> /path/to/logfile 2>> /path/to/errorfile

Или, если вы хотите захватить только вывод scp, перенаправьте только его вывод:

/usr/bin/expect -c '
set timeout -1
cd /$env(MOUNT_POINT)/$env(L_SID)/apps
spawn scp -pr apps$env(L_SRC_SID)@$env(APP_SERVER_1):/$env(SRC_MOUNT_POINT)/$env(L_SRC_SID)/apps/*. >> /path/to/logfile 2>> /path/to/errorfile
expect {
        yes/no { send yes\r ; exp_continue }
        password: { send $env(SERVICE_PASS)\r }
}
expect eof
'
2
27.01.2020, 23:18

Теги

Похожие вопросы