Home > Article > Backend Development > How to implement automated operation and maintenance in python
1. Install
pip install paramiko
2. Import module
import paramiko
3. Use
def initSshClinet (): ''' Initialization, SSH connection account and password to log in to the server: return: sshClinet ''' ip = ""#Server ip address sshClinet = paramiko.SSHClient() sshClinet.set_missing_host_key_policy(paramiko.AutoAddPolicy()) sshClinet.connect( ip, 22, userName, pw, timeout=360) return sshClinet
def exeCommond(commond): ''' Execute shell command''' stdin, stdout, stderr = sshClient.exec_command(command) outStr = stdout .readlines() print("\n".join(outStr))
def sftpUploadFile(localPath, remotePath): #Get the SFTP instance sftp = sshClinet.open_sftp() #Perform the upload action sftp.put(localPath , remotePath)
def sftpDownloadFile(localPath, remotePath): #Get the SFTP instance sftp = sshClinet.open_sftp() #Execute the download action sftp.get(localPath, remotePath)
Remember to close at the end Connection
sshClient.close()
You can also log in using a private key:
# Configure the private key file location private = paramiko.RSAKey.from_private_key_file('/Users/ ch/.ssh/id_rsa')#Instantiate SSHClientclient = paramiko.SSHClient()#Automatically add a policy to save the host name and key information of the server. If it is not added, hosts that are no longer recorded in the local know_hosts file will not be able to connect to the client. .set_missing_host_key_policy(paramiko.AutoAddPolicy())#Connect to the SSH server and authenticate with username and password client.connect(hostname='10.0.0.1',port=22,username='root',pkey=private)
Learn
paramiko contains two core components: SSHClient and SFTPClient.
SSHClient functions similar to the Linux ssh command. It is an encapsulation of the SSH session. This class encapsulates the transport, channel and SFTPClient establishment method (open_sftp). It is usually used to execute remote Order. The function of SFTPClient is similar to the sftp command of Linux. It is an encapsulation of the SFTP client and is used to implement remote file operations, such as file upload, download, and file permission modification.
Channel is a kind of Socket, a secure SSH transmission channel. Transport is an encrypted session. When used, an encrypted Tunnels (channel) will be created simultaneously. This Tunnels is called ChannelSession and is maintained between the client and the Server. The connected object, use connect()/start_client()/start_server() to start the session
Introduction to common methods of SSHClient
connect(): realize the connection of the remote server With authentication, only hostname is a required parameter for this method.
hostname Target host for connection port=SSH_PORT Specified port username=None Verified username password=None Verified user password pkey=None Private key method for authentication key_filename=None A file name or file list, Specify private key file timeout=None Optional tcp connection timeout allow_agent=True Whether to allow connection to ssh agent, the default is True Allow look_for_keys=True Whether to search for private key files in ~/.ssh, the default is True Allow compress=False Whether to turn on compression
set_missing_host_key_policy(): Set the response policy when the remote server is not recorded in the know_hosts file. Pass in the subclass of MissingHostKeyPolicy. Currently, three strategies are supported:
Set the strategy when the connected remote host does not have a local host key or HostKeys object. Currently, three strategies are supported:
AutoAddPolicy automatically adds Host name and host key to the local HostKeys object, does not depend on the configuration of load_system_host_key. That is, when establishing a new ssh connection, you do not need to enter yes or no for confirmation. WarningPolicy is used to record python warnings for an unknown host key. And accept, the function is similar to AutoAddPolicy, but it will prompt that new connections RejectPolicy automatically rejects unknown host names and keys, relying on the configuration of load_system_host_key. This is the default option
exec_command(): A method to execute Linux commands on a remote server.
open_sftp(): Create an sftp session based on the current ssh session. This method returns an SFTPClient object.
Introduction to common methods of SFTPClient
from_transport(cls,t): Create a connected SFTP client channel put(localpath, remotepath, callback=None, confirm= True): Upload local files to the server Parameter confirm: Whether to call the stat() method to check the file status and return the result of ls -l get(remotepath, localpath, callback=None): Download files from the server to the local mkdir(): In Create a directory on the server remove(): Delete the directory on the server rename(): Rename the directory on the server stat(): View the server file status listdir(): List the files in the server directory
The above is the detailed content of How to implement automated operation and maintenance in python. For more information, please follow other related articles on the PHP Chinese website!