GNU/Linux >> Belajar Linux >  >> Ubuntu

Ssh Ke Direktori Tertentu?

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?
Ubuntu
  1. Cara Mengkloning Repositori Git Ke Folder Tertentu

  2. Ssh Dan Izin Direktori Rumah?

  3. Ssh, Sudo, Lalu Unduh?

  1. Jalankan Perintah Tertentu Dalam Direktori yang Diberikan Tanpa Melakukan Cd'ing Untuk Itu?

  2. Bagaimana Menyetujui Komputer Tertentu Untuk Ssh Ke Mesin Dengan Otentikasi Kata Sandi Dinonaktifkan?

  3. Hapus Direktori Induk (tidak kosong) Jika Direktori Anak Tertentu Kosong?

  1. Ssh – Membatasi Pengguna Ssh/scp/sftp ke Direktori?

  2. Menggabungkan File Tertentu Menjadi Satu File Tunggal?

  3. Batasi login SSH ke IP atau host tertentu