Bir dosya yaratan bir bash komut dosyası var ve telnet ile bir e-posta göndermek istiyorum. Ancak bazen yürütür ve bazen olmaz.Bir bash komut dosyasında pipelining komutları arasında nasıl gecikme eklenir. Örneğin. kedi dosyası | telnet mail.domain.com 25
improper command pipelining after EHLO from domain.com ....etc
aynı komut dosyası yerine posta eğer mükemmel çalışıyor: sonunda
komutu başarısız olduğunda ben mail.log aşağıdaki hata gördüğünüz alıcı sunucusunda
cat tempfile | telnet mail.domain.com 25
olduğunu .domain.com Telnet oturumunu localhost'ta başlatıyorum, bu yüzden dosya formatının iyi olduğundan ve bash betiğinin geri kalanının da çalıştığından eminim.
Ben de Sonuç bazen bazen iyidir değil yine standart yönlendirmeyi yerine bir borutelnet mail.domain.com 25 < tempfile
Ama kullanarak denedim. Yönlendirme ile telnet oturum komutu arasında küçük bir gecikme olması gerektiğini düşünüyorum, böylece telnet oturumu oluşturulduktan ve bir cevap verildikten sonra verilecek, ancak bunu nasıl yapacağımı bilmiyorum. Borular ve yeniden yönlendirme arasında uyku komutunu kullanmayı denedim ve muhtemelen işe yaramaz, çünkü bu durumda giriş, uyku komutuna yönlendirilir.
e.g. cat tempfile | telnet mail.domain.com 25 & sleep 1
Kısıtlama, bir bash komut dosyasında yapmam gerekmesidir. Mümkün mü? Ayrıca herhangi bir öneme sahip olup olmadığını bilmiyorum, ancak betik debian sıkıştırılmış sunucular arasında çalışmak için kullanılan postfix/kurye kurulum ve şimdi alıcı son debian wheezy ve postfix/dovecot ile ayarlanır. Bağlantıyı açmak ve hiçbir şey yazma, 5 saniye bekleyin ve geri kalanı yazma
(echo -n; sleep 5; cat tempfile) | mail.domain.com 25
: Sen gibi bir şey deneyebilirsiniz yardım
'{echo -n; 5 uyku; kedi tempfile; } | ... 'gereksiz bir alt kabuktan kaçınacaktı. – chepner
Hızlı yanıt için çok teşekkürler :) Bu kusursuz bir şekilde çalıştı. Eko olmadan bile - 5 saniye bekleyip geri kalanını yazacaktır. Asla dahil etmeyi düşünmedim(). {} Ile denedim ve hala çalışıyor, böylece her iki cevap da iyi. Ancak {} ile echo-n kullanmalıyım; – gabtzi