Capturer le journal de sortie du script SCP d’Expect

Je veux capturer toutes les sorties du script scp automate et déplacer toutes les sorties vers le fichier journal

Mon script:

#!/usr/bin/expect -f spawn bash -c "scp /home/abc/pdf/105784/*.pdf [email protected]:/home/labdb2/Desktop/l/" expect { -re ".*sword.*" { exp_send "password@\r" } } interact 

sortie:-

 ./exp_test.sh spawn bash -c scp /home/abc/pdf/105784/*.pdf [email protected]:/home/labdb2/Desktop/l/ [email protected]'s password: 104_105856_adhikari.pdf 100% 10KB 9.8KB/s 00:00 134_105856_adhikari.pdf 100% 10KB 9.9KB/s 00:00 135_105856_adhikari.pdf 100% 10KB 9.8KB/s 00:00 193_105856_adhikari.pdf 100% 10KB 9.8KB/s 00:00 

Je veux toute la sortie dans un fichier journal dire nom scp_log.txt aussi je ne veux pas dans un écran pour afficher ci-dessous chose

 spawn bash -c scp /home/abc/pdf/105784/*.pdf [email protected]:/home/labdb2/Desktop/l/ [email protected]'s password: 

Si vous vous intéressez à la méthode purement basée sur les log_user , vous devez utiliser log_user .

 #!/usr/bin/expect -f log_user 0; # Disabling logging to user window log_file -a -noappend scp_log.txt spawn bash -c "scp /home/abc/pdf/105784/*.pdf [email protected]:/home/labdb2/Desktop/l/" expect { -re ".*sword.*" { exp_send "password@\r" } } interact 

Si vous souhaitez activer la connexion à l’utilisateur, vous pouvez utiliser log_user 1 pour faire la même chose.

La redirection d’E / S est une chose que vous voulez utiliser:

 spawn bash -c "scp /home/abc/pdf/105784/*.pdf [email protected]:/home/labdb2/Desktop/l/ &> scp_log.txt" 

ou simplement appeler le script comme

 ./exp_test.sh &> scp_log.txt