Saya SSH ke banyak server yang berbeda setiap hari dan beberapa dari mereka memiliki struktur sistem file yang berbeda untuk situs web mereka. Setiap kali saya berganti server, saya harus mencari tahu di mana saya akan mendapatkan file yang benar-benar saya inginkan (karena sangat jarang saya ingin berada di ~
).
Saya menggunakan file Fabric untuk mengotomatiskan semua tindakan saya (mendorong ke git, mengotomatiskan SSH ke server untuk menarik dari git, memulai ulang aplikasi web, mengubah dependensi, dll), jadi saya bertanya-tanya apakah saya juga tidak dapat mengatakannya bahwa saya ingin ke SSH ke direktori yang benar sehingga saya dapat menjalankan fab ssh
dan berada dalam sesi SSH normal, di tempat yang tepat dan segera mulai bekerja.
Ini bukan tentang Fabric; tolong abaikan. Fabric hanya menjalankan sekumpulan perintah. Argumen saya adalah dengan ssh
memerintah. Itulah yang akan saya suruh agar Fabric dijalankan.
Jadi bagaimana saya bisa mendapatkan ssh
ke cd
ke direktori tertentu saat login?
Catatan:ini tidak bisa menjadi server atau hal pengguna-lebar. Saya memiliki beberapa situs web di bawah satu pengguna di beberapa server jadi tempelkan sesuatu di ~/.bashrc
tidak akan bekerja untuk saya.
Jawaban yang Diterima:
Yah saya tahu saya bisa menjalankan sesuatu saat login, tapi saya tahu itu akan keluar langsung setelah berjalan. Apa yang saya ingat sekarang adalah bahwa saya dapat menjalankan sebanyak yang saya suka di server jauh. Anda bisa merangkai perintah bersama-sama!
ssh [email protected] -t "cd /websites/website ; /bin/bash"
Sekarang saya hanya bisa memberi tahu kain untuk melakukan itu dan kami pergi. Sederhana.
Saya memang mengatakan itu tidak ada hubungannya dengan Fabric tetapi ini juga bagian baru dari skrip fabric saya, berdasarkan hal di atas:
def ssh():
''' SSH into the remote server at the correct directory '''
local('ssh -t -p%(port)s %(server)s "cd %(remote_dir)s ; /bin/bash"' % {
'server': server_host,
'port': server_port,
'remote_dir': remote_dir,
})
Saya menghubungkan skrip yang sama sehingga variabel (server_host
, server_port
dan remote_dir
) berubah dari situs ke situs.
Karena Fabric dapat menangani koneksi keluar, Anda juga dapat melakukan ini:
def ssh():
''' SSH into the remote server at the correct directory '''
run('cd %s ; /bin/bash' % remote_dir)
Ini berfungsi tetapi output diawali dengan string dari Fabric. Ini membuat prompt lebih dari 80 karakter dan meskipun saya memiliki banyak resolusi, itu terlalu banyak untuk saya
Terkait:Unity setara dengan fitur 'komentar' KDE?