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 注释
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律