Mac脚本发布PHP开发项目到线上
环境
服务器: CentOS Linux release 7.6.1810 (Core)
客户端: macOS Sonoma 14.1.2 (23B92)
测试环境:开发使用ftp自动上传到/www/wwwroot/dirDev文件夹
自动备份并发布程序
备份/www/wwwroot/dirOnline文件夹,并将开发项目/www/wwwroot/dirDev自动同步到线上环境/www/wwwroot/dirOnline
保存到文件autoDevToOnline.ssh
#!/usr/bin/expect
# 服务器信息
set IP "XX.XX.XX.XXX"
set USER "root"
set PASSWORD "*****"
# 线上项目路径
set REMOTE_PATH "/www/wwwroot/dirOnline"
# 开发项目路径
set DEV_PATH "/www/wwwroot/dirDev"
# 备份文件名
set BACKUP_PATH "${REMOTE_PATH}_backup_[exec date +%Y%m%d%H%M%S]"
# 设置超时时间
set timeout -1
# 开始 SSH 连接
spawn ssh $USER@$IP
expect {
"yes/no" { send "yes\r"; exp_continue }
"password:" { send "$PASSWORD\r" }
}
# 远程执行命令
expect "#"
send "echo '===== 开始备份 ====='\r"
send "cp -r $REMOTE_PATH $BACKUP_PATH\r"
send "echo '===== 备份完成:$BACKUP_PATH ====='\r"
# 同步命令
# rsync -av --delete --exclude='.env' --exclude='.user.ini' /www/wwwroot/devdir/ /www/wwwroot/onlinedir/
send "echo '===== 开始同步 smartFactory-dev 到 smartFactory ====='\r"
send "rsync -av --delete --exclude='.env' --exclude='.user.ini' $DEV_PATH/ $REMOTE_PATH/\r"
send "echo '===== 同步完成 ====='\r"
# 退出 SSH
send "exit\r"
expect eof
如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
2024-03-04 Mac使用TCP发送信息nc -l 9000 和 telnet 127.0.0.1 9000