Fork me on GitHub

Mac脚本发布PHP开发项目到线上

环境

服务器: CentOS Linux release 7.6.1810 (Core)
客户端: macOS Sonoma 14.1.2 (23B92)
测试环境:开发使用ftp自动上传到/www/wwwroot/dirDev文件夹
image

自动备份并发布程序

备份/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
posted @   秋夜雨巷  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
历史上的今天:
2024-03-04 Mac使用TCP发送信息nc -l 9000 和 telnet 127.0.0.1 9000
点击右上角即可分享
微信分享提示