Vagrant SSH登录后立即执行一个脚本或命令的方法

 

需求

客户想要在vagrant外部有一个脚本去执行vagrant里面的一个脚本

解决方案

vagrant ssh -c '/the_path_of_your_shell/your_shell.sh'

以上脚本会在执行后退出vagrant,如果想要执行后继续保持vagrant的登录状态,只需如下修改,加入 ;/bin/bash

vagrant ssh -c '/the_path_of_your_shell/your_shell.sh;/bin/bash'

执行命令

vagrant ssh -c 'cd /usr/local;ls;/bin/bash'

 

window执行bat例子

cmd /k "cd /d D:\vb_centos_box & vagrant up & vagrant ssh -c 'cd /dnmp;docker-compose up -d;/bin/bash' "

 

复制代码
@echo off
:again
cls
echo.
echo.
echo ######################请选择要执行的操作######################################
echo ----------------------输入数字1并按回车,启动虚拟机,并运行dnmp环境----------------------
echo ----------------------输入数字2并按回车,进入已启动的虚拟机----------------------
echo ----------------------输入数字3并按回车,进入虚拟机,进入docker php容器----------------------
echo ----------------------输入数字4并按回车,进入虚拟机,进入docker php容器,启动导入队列----------------------
echo ----------------------输入任何其它字符,终止批处理   ----------------------
echo.
echo.
echo 请选择要执行的操作:
set /p num=

if "%num%"=="1" (
cls
cmd /k "cd /d D:\vb_centos_box & vagrant up & vagrant ssh -c 'cd /dnmp;docker-compose up -d;/bin/bash' "
pause
)

if "%num%"=="2" (
cls
cmd /k "cd /d D:\vb_centos_box & vagrant ssh -c 'cd /dnmp;sudo -s;/bin/bash'"
pause
rem goto again
)

if "%num%"=="3" (
cls
cmd /k "cd /d D:\vb_centos_box & vagrant ssh -c 'cd /dnmp;docker exec -it php sh;cd /app/cst-group;/bin/bash' "
pause
rem goto again
)

if "%num%"=="4" (
cls
cmd /k "cd /d D:\vb_centos_box & vagrant ssh -c 'cd /dnmp;docker exec -it php sh;cd /app/cst-group/;nohup php yii data-import-queue/listen > ../queue_nohup.log 2>&1 &;/bin/bash' "
pause
rem goto again
)

rem 注释
复制代码

 

posted @   一个人的孤独自白  阅读(737)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示