Dưới đây là kịch bản.
Tôi muốn đăng nhập một số máy chủ và kiểm tra phiên bản kernel.
#!/bin/bash
#input server names line by line in server.txt
cat server.txt | while read line
do
sshpass -p password ssh root@$line << EOF
hostname
uname -r
EOF
done
Tôi mong đợi đầu ra giống như ..
server1_hostname
kernel_version
server2_hostname
kernel_version
và như thế..
Tôi đã chạy tập lệnh này với khoảng 80 máy chủ trong server.txt
Và đầu ra tôi nhận được là .....
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
========================================================================
================================ WARNING ===============================
========================================================================
This system is solely for the use of authorized personnel. Individuals
using this system are subject to having some or all of their activities
monitored and recorded. Anyone using this system expressly consents to
such monitoring and is advised that any unauthorized or improper use of
this system may result in disciplinary action up to and including
termination of employment. Violators may also be subject to civil and/or
criminal penalties.
========================================================================
Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.
xxxxdev01
2.6.32-431.23.3.el6.x86_64
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Ở đây tôi nhận được đầu ra chỉ có 1 máy chủ, xxxxdev01
và điều đó cũng đi kèm với biểu ngữ ssh và cảnh báo khác.
Tôi cần đầu ra của tất cả các máy chủ khác và không có biểu ngữ ssh .. Điều gì đang xảy ra ở đây?
ssh -t -t root@
... để buộc một thiết bị đầu cuối giả.
sshpass -p password root@server histname
?