ฉันสามารถ SSH ไปยังไดเรกทอรีเฉพาะได้หรือไม่


9

ฉัน SSH เป็นเซิร์ฟเวอร์ที่แตกต่างกันจำนวนมากทุกวันและบางคนมีโครงสร้างระบบไฟล์ที่แตกต่างกันสำหรับเว็บไซต์ของพวกเขา ทุกครั้งที่ฉันเปลี่ยนเซิร์ฟเวอร์ฉันต้องออกกำลังกายว่าจะไปยังไฟล์ที่ฉันต้องการได้อย่างไร (เพราะไม่ค่อยบ่อยเท่าที่ฉันต้องการ~)

ฉันใช้ไฟล์ Fabric เพื่อทำให้การกระทำทั้งหมดของฉันเป็นแบบอัตโนมัติ (ผลักไปที่ git, SSH อัตโนมัติไปยังเซิร์ฟเวอร์เพื่อดึงจาก git, เริ่มเว็บแอปพลิเคชันใหม่, เปลี่ยนการอ้างอิง ฯลฯ ) ดังนั้นฉันสงสัยว่าฉันไม่สามารถบอกได้ว่าฉันต้องการ ไปที่ SSH ลงในไดเรกทอรีที่ถูกต้องเพื่อให้ฉันสามารถเรียกใช้fab sshและอยู่ในช่วงปกติของ SSH ได้ในที่ที่เหมาะสมและเริ่มทำงานทันที

มันไม่ได้เกี่ยวกับเนื้อผ้า โปรดละเว้นมัน Fabric เป็นเพียงการรันชุดคำสั่ง ข้อโต้แย้งของฉันอยู่กับsshคำสั่ง นั่นคือสิ่งที่ฉันจะบอกให้ผ้าวิ่ง

ดังนั้นฉันsshจะcdเข้าสู่ไดเรกทอรีเฉพาะในการเข้าสู่ระบบได้อย่างไร

หมายเหตุ: สิ่งนี้ไม่สามารถเป็นเซิร์ฟเวอร์หรือสิ่งที่ทั่วทั้งผู้ใช้ ฉันมีหลายเว็บไซต์ภายใต้ผู้ใช้หนึ่งรายในเซิร์ฟเวอร์บางเครื่องดังนั้นการติดบางสิ่งลงไป~/.bashrcจะไม่ได้ผลสำหรับฉัน

คำตอบ:


9

ฉันรู้ว่าฉันสามารถใช้งานบางอย่างในการเข้าสู่ระบบ แต่ฉันรู้ว่ามันจะออกไปทันทีหลังจากทำงาน ตอนนี้สิ่งที่ฉันจำได้คือฉันสามารถทำงานได้มากเท่าที่ฉันต้องการบนเซิร์ฟเวอร์ระยะไกล คุณสามารถรวมคำสั่งเข้าด้วยกัน!

ssh user@server -t "cd /websites/website ; /bin/bash"

ตอนนี้ฉันสามารถบอกเนื้อผ้าให้ทำอย่างนั้นได้แล้ว ง่าย


ฉันบอกว่ามันไม่ได้เกี่ยวอะไรกับเนื้อผ้า แต่นี่เป็นส่วนใหม่ของสคริปต์ผ้าของฉันด้วยตามข้างต้น:

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,
    })

ฉัน symlink สคริปต์เดียวกันรอบ ๆ เพื่อให้ตัวแปร ( server_host, server_portและremote_dir) เปลี่ยนจากเว็บไซต์ไปยังเว็บไซต์

เนื่องจาก Fabric สามารถจัดการการเชื่อมต่อขาออกคุณสามารถทำได้ดังนี้:

def ssh():
    ''' SSH into the remote server at the correct directory '''
    run('cd %s ; /bin/bash' % remote_dir)

สิ่งนี้ใช้งานได้ แต่ผลลัพธ์จะถูกเติมไว้ด้วยสตริงจาก Fabric นี่ทำให้มากกว่า 80 chars นานและในขณะที่ฉันมีความละเอียดมากเกินไปสำหรับฉัน :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.