จะลบไฟล์ในเครื่องระยะไกลผ่าน SSH โดยใช้ Shell Script ได้อย่างไร


32

ฉันกำลังเขียนเชลล์สคริปต์ที่ฉันต้องลบไฟล์ในเครื่องระยะไกลผ่านเชลล์สคริปต์

ไหลด้วยตนเอง:

ssh username@domain.com

.. จากนั้นที่โดเมน:

cd ./some/where
rm some_file.war

วิธีการทำงานให้สำเร็จ

คำตอบ:


49

คุณสามารถส่งsshคำสั่งให้กับไคลเอ็นต์เพื่อดำเนินการแทนการเริ่มเชลล์โดยต่อท้ายคำสั่ง ssh

ssh username@domain.com 'rm /some/where/some_file.war'

คุณไม่จำเป็นต้องไปcdที่ที่ตั้งเพื่อลบบางสิ่งออกไปตราบใดที่คุณระบุเส้นทางแบบเต็มดังนั้นจึงเป็นอีกก้าวที่คุณสามารถข้ามได้

คำถามต่อไปคือการตรวจสอบ หากคุณเพิ่งเปิดใช้งานคุณจะได้รับพร้อมท์ให้ใส่รหัสผ่าน หากคุณไม่ต้องการป้อนสิ่งนี้แบบโต้ตอบคุณควรตั้งค่าการพิสูจน์ตัวตนแบบ publickey


3
ฉันคิดว่า -c คือ cipher_spec - ไม่? ฉันไม่คิดว่า -c จำเป็นสำหรับการส่งคำสั่ง
Scott C Wilson

ขอบคุณทุกคนสำหรับคำตอบที่รวดเร็ว คำตอบนี้เป็นคำตอบที่มีส่วนประกอบส่วนใหญ่ในการแก้ปัญหาดังนั้น @Caleb จึงได้รับเครื่องหมายในเวลานี้
mico

เราควรเพิ่ม-fการrmดำเนินการโทรระยะไกลหรือไม่
Fedir RYKHTIK

1
@Fedir NO! คำถามจะถามเฉพาะเกี่ยวกับไฟล์ที่ไม่ใช่ไดเรกทอรีและหากมีคำเตือนหรือข้อผิดพลาดใด ๆ เกิดขึ้นrmพวกเขาควรส่งต่อไปยังผู้โทรเว้นแต่ผู้ใช้จะรู้ว่าจะต้องคาดหวังอะไรและทำไมพวกเขาถึงเอาชนะอะไรบางอย่าง ข้อผิดพลาดจำนวนมากและการแก้จุดบกพร่องที่น่าผิดหวังในภายหลังสามารถหลีกเลี่ยงได้โดยใช้ตัวเลือกที่คุณต้องการใน Senario ที่ระบุเท่านั้น
Caleb

1
@Fedir -fตัวเลือกที่rmสั้น--forceและมีผลบังคับใช้ไม่ว่าจะเป็นข้อผิดพลาดสำหรับไฟล์ที่ไม่มีอยู่หรือข้อโต้แย้งปลอม โดยปกติแล้วคำสั่งจะทำงานบนเชลล์ที่ไม่ใช่แบบอินเตอร์แอคทีฟซึ่งมีค่าเริ่มต้นเป็นแบบอินเตอร์แอคทีฟน้อยกว่า แต่คุณไม่ได้รับหรือคุณได้รับพรอมต์แบบโต้ตอบสิ่งที่ต้องทำคือแก้ไขการตั้งค่าที่เกี่ยวข้องโดยตรง หากคุณกำลังเขียนสคริปต์นี้คุณไม่ควรมีปัญหาที่อยู่แล้วและถ้าคุณอยู่ในเปลือกโต้ตอบ (ที่คุณมีความเป็นไปได้ของความผิดพลาดภัยพิบัติ) คุณควรใช้-Iใน--interactive=neverการตั้งพฤติกรรมที่คุณต้องการ
Caleb


2

คำสั่ง ssh มีพารามิเตอร์คำสั่ง (พารามิเตอร์สุดท้ายในคำสั่ง) ที่คุณสามารถใช้เพื่อเรียกใช้คำสั่งระยะไกล


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