首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Mac AppleScript远程关闭局域网上的Ubuntu

使用Mac AppleScript远程关闭局域网上的Ubuntu
EN

Ask Ubuntu用户
提问于 2020-09-10 01:02:32
回答 2查看 740关注 0票数 1

试图使用Mac计算机远程关闭同一局域网上的Ubuntu计算机。如果我在mac上打开终端,我可以使用: ssh testbox@12.34.56.78关闭Ubuntu,然后输入密码,然后输入sudo poweroff,再输入密码。这确实管用。

问题是我需要使用来完成这个任务。(因此我可以创建一个Calendar事件,并在备份完成后的某个特定时间运行它)

注意:我已经成功地创建了一个Applescript,Wakeonlan可以在一天中的特定时间打开Ubuntu:

代码语言:javascript
复制
tell application "Terminal"
    set currentTab to do script
    ("ssh testbox@192.168.1.12;")
    delay 6
    --//password
    do script ("~/bin/wakeonlan 00:11.22.33.44.55")
    
end tell

这很好,发送wakeonlan并启动Ubuntu,但是我不知道如何做同样的事情来关闭Ubuntu计算机?我什么都试过了吗?我发现的所有帖子只展示了如何在Ubuntu终端,而不是从Mac AppleScript放在Mac终端?

EN

回答 2

Ask Ubuntu用户

发布于 2020-09-12 15:26:36

如果你要尝试通过苹果脚本来完成这一切,那么“猫”的评论就显得恰到好处:你需要一个苹果论坛。

但在我看来,你真正的问题是如何避免在密码问题上受到挑战。而ssh拷贝id正是为此目的而发明的。如果你愿意尝试一下.

目标Ubuntu主机上的

为此目的创建一个专用用户

sudo adduser --force-badname SandMan

接下来,编辑/etc/sudoers以允许SandMan执行"sudo /sbin/关机.“没有异议。

sudo visudo

(默认情况下,这会以编辑器的形式打开"nano“-您将不得不自己处理;我将所有的代码都改为vi)。在includedir指令末尾插入以下内容:

%SandMan ALL=NOPASSWD: /sbin/shutdown

保存文件

现在,您应该能够使用SandMan用户登录到您的主机并执行sudo /sbin/shutdown --help,而不需要询问密码。

若要允许直接从MAC终端窗口执行关机,请尝试(从MAC终端):

代码语言:javascript
复制
ssh-keygen -t rsa -b 2048 -f ~/.ssh/SandMan_rsa
ssh-copy-id -i ~/.ssh/SandMan_rsa SandMan@12.34.56.78

这是一个很好的Ubuntu20.04语法,但我不确定这是否能在不调整的情况下在MAC上工作。但是,如果它确实工作,那么您应该能够关闭您的目标从MAC终端:

ssh -i ~/.ssh/SandMan_rsa SandMan@12.34.56.78 /sbin/shutdown -h now

票数 1
EN

Ask Ubuntu用户

发布于 2020-09-13 22:12:45

我终于想出来了。以下是起作用的原因:

代码语言:javascript
复制
tell application "Terminal"
  activate
  do script ("ssh testbox@192.168.1.10")
  delay 6
  do script "password" in front window
  delay 7
  do script "sudo poweroft” in front window
  delay 5
  do script "password" in front window
end tell
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1273947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档