Bir kullanıcının disk kullanımını bulmak için uzak sunucuya ssh komut dosyası yazdım. Ancak, bu betik sadece ilk satırı okuyabilir, dosyanın diğer satırlarında devam etmez. Senaryoda yanlış olan bir şey var mı? Teşekkürler.Bash komut dosyası yalnızca dosyanın ilk satırını okuyor
#!/bin/bash
FILE="myfile.txt"
while read line; do
server=`echo $line|awk '{print $1}'`
cpid=`echo $line|awk '{print $2}'`
echo $server "---" $cpid "---" `ssh $server grep $cpid /var/cpanel/repquota.cache|awk '{print int($3/1000) "MB"}'`
done < $FILE
myfile.txt içeriği:
sunucu1 kullanici1
server2 kullanici2
server3 kullanıcı3 Eğer
while read server cpid; do
echo $server "---" $cpid "---" `ssh ...`
done <$FILE
için okuma döngü basitleştirmek ve kaydedebilir tüm
Ssh komutu komut satırından mı çalışıyor? ssh -o CommandTimeout = 20 ... 'yi kullanarak başarısız bir bağlantıyı zaman aşımına uğratın – suspectus
Evet, ssh komut kısmı çalışır. İlk satırın sonucunu alabilirim. – garconcn
İkinci sütun bir kullanıcı adı gibi görünüyor. Bu gerçekten $ cpid ile aynı mı yoksa üçüncü bir sütun var mı? –