Cố gắng rsync tập tin từ máy chủ này sang máy chủ khác trong một phiên màn hình. Thay vì viết lệnh dài mỗi lần, tôi quyết định đưa vào tập lệnh Bash. Tuy nhiên, khi tôi chạy nó, tôi gặp Missing trailing-" in remote-shell command.
lỗi.
Tự hỏi những gì đang xảy ra trong kịch bản.
root@127.0.0.1:~# /raid/data/module/bin/rbk.sh Movies /raid/data/Movies rsync_target/
/raid/data/module/bin/screen -S Movies
/opt/bin/rsync --rsh="ssh -p 10022 -c des"\
--rsync-path="/opt/bin/rsync" --inplace --progress -a -vv \
/raid/data/Movies sys@192.168.1.15:/raid/data/rsync_target/
Missing trailing-" in remote-shell command.
rsync error: syntax or usage error (code 1) at main.c(361) [sender=3.0.5]
Kịch bản lặp lại những gì nó sẽ làm đầu tiên và sau đó thực hiện lệnh. Dưới đây là một tập lệnh của tôi:
#!/bin/bash
SCREEN="/raid/data/module/bin/screen"
SCREENOPT="-S"
SCREEN_TITLE=$1
RSYNC="/opt/bin/rsync"
RSYNCOPT="--rsh=\"ssh -p 10022 -c des\" --rsync-path=\"/opt/bin/rsync\" --inplace --progress -a -vv"
SOURCE=$2
REMOTE_USER="sys@"
REMOTE_HOST="192.168.1.15"
REMOTE_BASE=":/raid/data/"
REMOTE_TARGET=$3
echo ${SCREEN} ${SCREENOPT} ${SCREEN_TITLE}
echo ${RSYNC} ${RSYNCOPT} ${SOURCE} ${REMOTE_USER}${REMOTE_HOST}${REMOTE_BASE}${REMOTE_TARGET}
${RSYNC} ${RSYNCOPT} ${SOURCE} ${REMOTE_USER}${REMOTE_HOST}${REMOTE_BASE}${REMOTE_TARGET}
run_rsync() { /opt/bin/rsync "--rsh=\"ssh -p 10022 -c des\" --rsync-path=\"/opt/bin/rsync\" --inplace --progress -a -vv" $1 $2 } run_rsync ${SOURCE} ${REMOTE_USER}${REMOTE_HOST}${REMOTE_BASE}${REMOTE_TARGET}
(Tôi biết, điều này khá cũ, nhưng vẫn là một trong số các liên kết đầu tiên khi tìm kiếm "Mất dấu -" trong lệnh shell từ xa ")