Python lệnh từ xa

Có những trường hợp chúng tôi muốn kiểm tra mã cục bộ của mình nếu nó chạy từ xa. Lưu ý rằng chúng tôi chạy mã cục bộ không chạy mã từ xa sau khi tải mã ở nơi xa. Ngoài ra, chúng tôi muốn giám sát đầu ra từ quá trình chạy từ xa. Vì vậy, trong chương này, chúng ta sẽ xem cách chúng ta có thể chạy mã từ xa và nhận kết quả đầu ra từ mã đó

Trong chương này, tôi đã sử dụng máy chủ của mình tại http. //www. bogotobogo. com/ dưới dạng một vị trí từ xa và CentOS ảo [Hypervisor. VMWare Workstation 10 ] được sử dụng làm địa phương của tôi

Tóm lại, chúng tôi có danh sách các lệnh sẽ được thực thi từ xa và nhận tệp đầu ra có nhật ký

Đây là tập lệnh shell đơn giản của chúng tôi

# s.sh
uname -r
uptime

Để bắt đầu khiêm tốn, trước tiên hãy thử chạy cục bộ

$ ./s.sh
2.6.32-358.el6.x86_64
 14:25:38 up 4 days, 15:59,  2 users,  load average: 0.00, 0.00, 0.00

Sau đó, chạy từ xa

$ ssh bogotob1@bogotobogo.com < ./s.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
bogotob1@bogotobogo.com's password:
3.12.26.1407184750
 23:14:59 up 67 days, 14 min,  1 user,  load average: 42.36, 30.37, 28.13

Một mẫu python I - chạy từ xa

Mã trăn của chúng tôi

# s.py
#!/usr/bin/python
import subprocess

cmd_list = ['uname -r', 'uptime']

out = []
err = []

for cmd in cmd_list:
    args = cmd.split[]
    proc = subprocess.Popen[args,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE]
    [stdoutdata, stderrdata] = proc.communicate[]
    out.append[stdoutdata]
    err.append[stderrdata]

print 'out=',out
print 'err=',err

Cách chạy từ xa sau đây sẽ không hoạt động

$ ssh bogotob1@bogotobogo.com python s.py
bogotob1@bogotobogo.com's password:
python: can't open file 's.py': [Errno 2] No such file or directory

Tuy nhiên nếu chạy theo cách này thì chúng ta có thể thực hiện chạy từ xa

$ cat s.py  | ssh bogotob1@bogotobogo.com python -
bogotob1@bogotobogo.com's password:
out= ['3.12.26.1407184750\n', ' 16:01:11 up 67 days, 17:00,  1 user,  load average: 19.17, 22.79, 22.32\n']
err= ['', '']

Hoặc một lần chạy từ xa khác sẽ hoạt động nếu chúng ta chạy theo cách này

$ ssh bogotob1@bogotobogo.com python < ./s.py
bogotob1@bogotobogo.com's password:
out= ['3.12.26.1407184750\n', ' 16:48:29 up 67 days, 17:47,  1 user,  load average: 28.73, 23.32, 20.98\n']
err= ['', '']

Một mẫu python II - chạy từ xa

Lần này, chúng tôi chạy danh sách ba tập lệnh trong python [s. py]

['python uname.py', 'sh uptime.sh', 'perl hello.perl']

các s. mã py trông như thế này

________số 8

Nếu chúng tôi cố chạy cái này từ xa, chúng tôi sẽ gặp lỗi như thế này

$ cat s.py  | ssh bogotob1@bogotobogo.com python -
bogotob1@bogotobogo.com's password:
args= ['python', 'uname.py']
args= ['sh', 'uptime.sh']
args= ['perl', 'hello.perl']
out= ['', '', '']
err= ["python: can't open file 'uname.py': [Errno 2] No such file or directory\n", 'sh: uptime.sh: No such file or directory\n', 'Can\'t open perl script "hello.perl": No such file or directory\n']

Xảy ra lỗi vì mã cho rằng tập lệnh nằm cục bộ. Vì vậy, chúng ta cần chạy từng cái từ xa bằng ssh

Mẫu python III - chạy từ xa bằng os. hệ thống

Vì vậy, mỗi lệnh sẽ được chạy như thế này

$ ./s.sh
2.6.32-358.el6.x86_64
 14:25:38 up 4 days, 15:59,  2 users,  load average: 0.00, 0.00, 0.00
0

Tuy nhiên, chương trình sau vẫn không hoạt động. Shell từ xa vẫn nghĩ rằng ba mã [['uname. py', 'thời gian hoạt động. sh', 'xin chào. pl']] là cục bộ của nó [có nghĩa là chúng cư trú ở vị trí xa]

$ ./s.sh
2.6.32-358.el6.x86_64
 14:25:38 up 4 days, 15:59,  2 users,  load average: 0.00, 0.00, 0.00
1

đầu ra

$ ./s.sh
2.6.32-358.el6.x86_64
 14:25:38 up 4 days, 15:59,  2 users,  load average: 0.00, 0.00, 0.00
2

Nhưng mã đơn giản này sử dụng os. system[] thay vì subproccee. Popen[] dường như đang hoạt động

$ ./s.sh
2.6.32-358.el6.x86_64
 14:25:38 up 4 days, 15:59,  2 users,  load average: 0.00, 0.00, 0.00
3____14

Một mẫu trăn IV. chạy từ xa với chuyển hướng đầu ra

Nếu chúng tôi muốn lấy đầu ra std và lỗi dưới dạng một tệp từ lần chạy, đoạn mã sau sẽ làm điều đó cho chúng tôi [$ python s4. py]

Nội dung của email này và mọi tệp đính kèm đều được bảo mật và cũng có thể được đặc quyền. Nếu bạn không phải là người nhận dự định, vui lòng thông báo ngay cho người gửi và không tiết lộ nội dung cho bất kỳ người nào khác, sử dụng nó cho bất kỳ mục đích nào, hoặc lưu trữ hoặc sao chép thông tin trong bất kỳ phương tiện nào. Cảm ơn bạn

Làm cách nào để chạy lệnh SSH trong Python?

Chạy các lệnh SSH bằng mô-đun quy trình con. Mô-đun quy trình con không cần cài đặt thêm. Đó là một thư viện Python tiêu chuẩn. Do đó, bạn có thể sử dụng tiện ích dòng lệnh ssh bên trong phương thức chạy quy trình con của mình .

CMD từ xa là gì?

Remote command shell cho phép người dùng có đặc quyền mở giao diện dòng lệnh ảo cho máy tính từ xa . Sau đó, người dùng có thể nhập cục bộ nhưng thực hiện các lệnh trên máy tính từ xa. Bạn có thể làm việc từ nhiều shell.

Tôi có thể sử dụng CMD cho Python không?

Trong khi mã Python thường được viết trong trình soạn thảo văn bản và được thực thi trong dấu nhắc lệnh, Các tập lệnh Python cũng có thể được viết và thực thi trong dòng lệnh.

Làm cách nào để kết nối máy chủ từ xa bằng Python?

Cách kết nối với cơ sở dữ liệu MySQL từ xa bằng Python .
pip3 cài đặt mysql-connector-python
nhập mysql. .
mysql. tư nối. lỗi. Lỗi lập trình. 1045 [28000]. Truy cập bị từ chối đối với người dùng 'python-user'@'your ip address' [sử dụng mật khẩu. VÂNG]
$ định vị mysqld. .
/etc/mysql/mysql

Chủ Đề