Thực thi lệnh từ xa qua SSH
Posted by dongthao on March 21, 2008

Vâng, với công cụ mà ta thường dùng để quản trị từ xa, ta có thể thực thi lệnh mà không cần phải đăng nhập vào hệ thống. Secure SHell là một công cụ rất mạnh với rất nhiều ứng dụng hay. Sau đây là cách dùng nó để thực thi lệnh từ xa.
Để thử nghiệm một cách đơn giản, ta gõ lệnh sau:
ssh abel@server1 ‘ls -l’
Với abel là một user có quyền đăng nhập ssh vào server1. Kết quả lệnh trên sẽ liệt kê nội dung thư mục home của abel trên server1.
Bạn muốn khởi động lại apache webserver mà lười phải dùng SSH để đăng nhập, gõ lệnh rồi phải đăng xuất. Đơn giản hơn, ta khởi động lại từ xa với lệnh như sau:
ssh abel@server1 ’sudo /etc/init.d/apache2 restart’
Dĩ nhiên user abel phải được cho phép thực hiện lệnh đó trên server1. Ta có thể thực hiện việc cấp phép với sudo.
Nếu thực thi nhiều lệnh, các lệnh được ngăn cách bởi dấu chấm phẩy (;)
ssh abel@server1 ‘ls -l; ps -aux; whoami’
Các bạn chú ý khi thực thi các lệnh trên, sau khi có kết quả trả về thì ssh tự động đăng xuất và trả lại shell như cũ cho người sử dụng. Nhưng có những lệnh ta cần phải theo dõi kết quả thay đổi theo thời gian thực thì tính năng này lại trở thành bất tiện. Chẳng hạn với lệnh top để theo dõi thông tin sử dụng tài nguyên của các tác vụ trên hệ thống.
ssh -t abel@server1 ‘top’
Tham số ‘-t’ báo cho ssh biết là bạn vẫn còn muốn giữ tương tác với remote shell, và vẫn giữ cho bạn đăng nhập cho đến khi bạn kết thúc lệnh đó. Tham số này đặc biệt hữu dụng với các lệnh tương tác, như soạn thảo văn bản với vim.
Nếu bạn thường xuyên làm việc với các script để điều khiển từ xa, thì đây là sự lựa chọn rất tốt.
Đông Thao




March 22, 2008 at 10:53 am
Cảm ơn bạn vì cái này mình đang cần :).
PS: cái hình mắc cười quá haha
March 25, 2008 at 2:35 am
Thao cho biet dum dac tinh cua mail ma nguon mo(senmail,Qmail..)
June 7, 2008 at 6:02 am
có cách nào thi hành một local script ở remote không bạn?