【问题标题】:'rsync' bash script help for file synchronisation to wordpress live server'rsync' bash 脚本帮助文件同步到 wordpress 实时服务器
【发布时间】:2015-09-27 18:00:43
【问题描述】:

我有一个 bash 脚本,我想用它来同步我使用 rsync 命令对我的 wordpress 站点所做的本地更改。但是,当我尝试在命令行中运行文件时,它只显示文件的内容?

脚本:

#!/bin/bash

echo "Deploying website”

SOURCE_DIR=“/my/local/path/to/files”
TARGET_DIR="/remote/dir/location"
TARGET_SERVER=“user@server -pPORT”

echo "Synchronising"
echo ""

# rsync to live server
rsync --progress --exclude ‘wp-config.php’ --stats --archive -z --compress --delete -t $SOURCE_DIR $TARGET_SERVER:$TARGET_DIR

echo ""
echo "Done”

正如我所说,在命令行中执行:sh ./sync.sh时,它只显示脚本的内容。

谁能发现我哪里出错了? (显然,我在真实文件中更改了路径名和服务器)

我已将权限设置为 755 并在 OSX 上运行

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 如果你只运行./sync.sh会怎样?

标签: wordpress macos bash shell rsync


【解决方案1】:

除非它只是一个复制错误,否则您似乎在第一个 echo 的末尾使用了错误的双引号(“ at start doesnt match ” a​​t end)。这意味着 echo 的字符串参数继续下一个 ("),然后继续下一个 ("),依此类推,直到回显整个文件。

确保所有双引号和单引号都没有被您的编辑器“魔法”。

【讨论】:

  • 没有检查这个,谢谢你的提示。讨厌它这样做!如果有人感兴趣,我也将 rsync 命令更改为:rsync -e "ssh -p PORT" --progress --stats --archive -z --compress --delete -t /Path/to/local user@server:Path/to/remote