我有一台运行虚拟盒的 ubuntu 家庭服务器。我在该盒上运行的虚拟服务器遇到了问题。目前我没有时间排除实际问题,但我发现重新启动服务器至少可以在 24 小时内解决问题。所以我的快速解决方法是每晚重新启动服务器。
底线是我想每周 7 天的凌晨 3:00 运行以下命令。
vboxmanage controlvm virtualpbx acpipowerbutton
每天晚上 3:05 我都想要运行以下命令。
vboxmanage startvm virtualpbx -type headless
最好的答案将为我提供从启动控制台到关闭控制台的分步说明。我想了解更多有关 cron 和 Linux 基础架构的信息,但目前我没有时间。
非常感谢你的帮助。
塞思·B·斯皮尔曼
** 编辑 **
我希望能够通过 ssh 提示符将它们放置到位。(别笑,但服务器现在没有连接监视器,要让它工作起来需要做大量的工作。)但我可以随时通过 ssh 连接到它。
从 ssh 提示来看,crontab 似乎不起作用...它只是转到下一行,似乎在等待更多输入。
我尝试使用 sudo apt-get install crontab 从 ssh 安装 crontab,但在任何存储库中都找不到它。
所以我想我会使用 nano 并手动完成,但我需要知道把它放在哪里。
总而言之...我是在 ssh 提示符下执行此操作的...我认为这并不重要,但我想让你知道。
塞斯
答案1
打开终端(Ctrl++ ) Alt,T然后运行:
crontab -e
如果它要求您选择编辑器,请选择 nano。在文件末尾插入以下行:
0 3 * * * vboxmanage controlvm virtualpbx acpipowerbutton
5 3 * * * vboxmanage startvm virtualpbx -type headless
按Ctrl+ O,Return保存文件,按Ctrl+X退出。然后运行exit
关闭终端。
编辑
原文作者是这么做的:
- ssh 到服务器
sudo nano /etc/crontab <key in password>
根据 Eric 的建议进行编辑,但添加了启动虚拟机的用户名,如下所示...
0 3 * * * username vboxmanage controlvm virtualpbx acpipowerbutton 5 3 * * * username vboxmanage startvm virtualpbx -type headless
CTRL-X 关闭。按 Enter 保存 crontab。
- 重新启动 cron:
sudo service cron stop
然后sudo service cron start
。
答案2
拖放到控制台
为每个命令创建一个 bash 脚本(不要忘记使用 使它们可执行sudo chmod +x filename.sh
),并将它们存储在 cron 可以运行它们的地方。
sudo anacron -t 00 03 * * * /path/to/script/script1.sh
sudo anacron -t 10 03 * * * /path/to/script/script2.sh
享受!