如何自动执行我在 VPS 上经常使用的命令?

如何自动执行我在 VPS 上经常使用的命令?

我在 DigitalOcean VPS 上有一些项目。我经常部署部分代码。几乎每次上传后我都必须执行多个命令。

例如,如果我更改 Django 模型并添加一些静态文件:

我必须通过 ssh 连接并且:

activate virtualenv
cd to /home/django/project/
python manage.py makemigrations
python manage.py migrate 
python manage.py collectstatic
sudo systemctl daemon-reload
sudo systemctl restart gunicorn
sudo systemctl restart nginx
sudo supervisorctl
restart celery_worker

当然,我不需要每次都执行所有命令。

我希望能够让使用这些命令变得更加舒适。

是否存在某个应用程序,我可以在其中定义这些命令,然后从中选择并执行?

我想到最接近的方法是创建 shell 脚本,但也许还有更好的选择。

我用PyCharm用于部署。我查看了文档,没有找到这样的功能,但也许有。

答案1

我想到最接近的方法是创建 shell 脚本,但也许还有更好的选择。

是否存在某个应用程序,我可以在其中定义这些命令,然后从中选择并执行?

是的,我会创建 shell 脚本。但您也可以创建一个本地托管网站,在其中创建一个带有复选框的页面并让它们在服务器上执行。

关于shell脚本:

你可以创建非常复杂的 shell 脚本。请查看如何在 shell 脚本中创建选择菜单?对于使用“对话框”的“菜单”样式方法。“tasksel”是一个非常适合命令行的脚本,如下所示:

在此处输入图片描述

您可以创建类似的东西,并将每个命令设置为您选择的任务,然后执行。或者,如果命令相互依赖,则将它们串在一起(我想您需要始终启动所有 python manage.py,而不是作为单独的命令)。

相关内容