Ssh'tan çıktıktan sonra otomatik olarak bir komut nasıl çalıştırılır


10

sshBağlantıdan çıktıktan sonra yerel terminalde otomatik olarak bir komutu nasıl çalıştırabilirim ? Bunun için kullanılabilecek herhangi bir kanca veya olay var mı?

Yanıtlar:


13

Kaldıraç bir aliasya da daha iyi bir işlev.

Örneğin:

ssh () { command ssh "$@"; echo foobar; }

Şimdi çalıştırabilirsiniz:

ssh mysite

sshoturumdan çıktıktan sonra echo foobarçalıştırılacaktır.

echo foobarÇalıştırmanız gereken gerçek komutla değiştirin ve elbette isterseniz birden fazla komutu ele alabilirsiniz.

Fonksiyon tanımı kalıcı yapmak için, Gözlerinde farklı koydu ~/.bashrc.


Ayrıca ssh, dışsallığı açıkça kullanmak istediğinizde işlevin adlandırılması her zaman istenmeyebilir ssh. Bu durumda, sshharici sshikili almak için işlevi atlamak üzere aşağıdakilerden herhangi birini kullanabilirsiniz :

command ssh mysite

veya işlevi başka bir adla yeniden adlandırın, örneğin sshfunc:

sshfunc () { ssh "$@"; echo foobar; }

4
Not: İşlevin "ssh" dışında bir adla yeniden adlandırılmasını öneririm, bu yüzden ssh'ı orijinal anlamıyla saklıyorsunuz ... belki: ssh2? veya sshcmd? (aksi takdirde aşağıdaki gibi şeyleri yaparken yan etkilerini unutabilirsiniz:: ssh user@host 'cd /somewhere/ && tar cf - | gzip -c -' > local_backup_of_somewhere.tgzSonunda "foobar" içereceği için bu yanlış olacaktır ...)
Olivier Dulac

@OlivierDulac İyi bir nokta, düzenlendi.
heemayl

\ ssh 'ssh' ve "ssh" yalnızca bir takma addan kaçar, ssh komutu komutu çalıştırır (hem takma addan hem de işlevden kaçar).
Olivier Dulac

@OlivierDulac Bunu bilmiyordum, düzeltildi.
heemayl

Bu bash gibi, belki diğer kabukları ile değişebilir ... ama şimdi, bu eklemeler ile cevabınızı beğendim, + 1 ^ ^
Olivier Dulac
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.