python实现Synology NAS的关机

本文介绍如何使用Python的paramiko模块通过SSH远程控制NAS设备进行关机操作。首先需在NAS上启用SSH功能,然后利用Python脚本连接并执行关机命令。文中详细展示了代码示例,包括连接设置及命令执行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题描述

 因为需要使用编程进行NAS的关机,而且这个程序不能在NAS内部运行,因此想到了使用远程连接来进行NAS的关机操作。因为NAS是一种定制的LINUX系统,因此可以利用Python使用SSH来远程连接,并使用命令行关机指令shutdown -h now实现远程关机。

二、实验步骤
1、启用NAS的SSH功能

1、打开控制面板选择高级模式
在这里插入图片描述
2、进入终端机和SNMP
在这里插入图片描述
3、选择启用SSH功能
在这里插入图片描述

2、Python实现远程关机

1、安装paramiko模块
 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。跟常用软件xshell 、xftp功能一样,但是可以连接多台服务器,进行复杂的操作。
 在这里我使用了Jupyter,因此使用了anaconda安装方法。打开Anaconda Prompt (anaconda)终端,输入以下命令

conda install paramiko

2、执行Python程序
 这里使用了SSHClient基于用户名和密码的 sshclient 方式登录。其中hostname填写NAS的ip地址,password填写自己设置的密码,command是需要执行的命令。

import paramiko

# 建立一个sshclient对象
ssh = paramiko.SSHClient()
# 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 调用connect方法连接服务器
# 需要管理员账号
ssh.connect(hostname='192.168.1.104', port=22, username='root', password='123456')
# 执行命令
# 关机命令
command="shutdown -h now"
stdin, stdout, stderr = ssh.exec_command(command)
# 结果放到stdout中,如果有错误将放到stderr中
print(stdout.read().decode())
print('执行完毕')
# 关闭连接
ssh.close()

其他登录方式参考
参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值