1

我的本地机器上有一个 PHP 项目,具有以下文件夹结构

  assets/
  |- css/
  |- ...
  |- js/
  |- ...
  dynamic/
  |- scripts/ *contains a bunch of .php files

计划是使用将assets/目录推送到 Amazon S3(与 CloudFront CDN 一起使用)s3cmd并将文件直接推dynamic/送到 Amazon EC2 实例(Web 服务器)。

我在下面使用它的基本脚本:

[推.sh]

#!/bin/bash

# Source our program variables
. ./_global.sh

# Setup the build directory
echo "======== Preparing the build directory =============="
node build/r.js -o build/build.js

# Start up the rsync to push the dynamic files
echo "==== Syncing dynamic files with the EC2 instance ===="
rsync -rvzh --progress --delete --exclude-from "${BUILD_DIR}exclude-list.txt" \
    -e "ssh -i ${BUILD_DIR}mykey.pem" \
    $WWW_BUILT_DIR ubuntu@$SERVER_IP:$SERVER_DIR

# Push the static assets up to S3
echo "========== Pushing static assets to the S3  ========="
s3cmd sync --delete-removed --exclude-from "${BUILD_DIR}exclude-list.txt" \
    ${WWW_DIR}${ASSETS} s3://mybucketname/${ASSETS}

echo "All done :)"

一切正常,除了推送到 EC2 Web 服务器的文件的权限全部设置为在ssh命令 ( ubuntu) 中配置的用户。我该如何设置它来:www-data代替使用?

4

1 回答 1

2

一切完成后,你可以把它放在你的脚本中远程执行命令(例如chown、chmod等),

ssh -l root -i ${BUILD_DIR}mykey.pem" $SERVER_IP "chown whateveruser:whatevergroup $SERVER_DIR"

句法:

ssh -l root -i key $SERVER_IP "your command"
于 2013-08-10T07:20:34.273 回答