mirror of
https://github.com/cross-the-world/scp-pipeline.git
synced 2025-09-11 03:48:58 +08:00
allow create remote dir if not exist
This commit is contained in:
@@ -20,6 +20,22 @@ createKeyFile() {
|
|||||||
ssh-keyscan -t rsa "$INPUT_HOST" >> "$SSH_PATH/known_hosts"
|
ssh-keyscan -t rsa "$INPUT_HOST" >> "$SSH_PATH/known_hosts"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_remote_dir() {
|
||||||
|
local USEPASS=$1
|
||||||
|
local REMOTE=$2
|
||||||
|
CMD="ssh"
|
||||||
|
if $USEPASS; then
|
||||||
|
CMD="sshpass -p $INPUT_PASS scp"
|
||||||
|
fi
|
||||||
|
echo "Checking remote directory: '$REMOTE'"
|
||||||
|
if $CMD -o StrictHostKeyChecking=no -o ConnectTimeout=${INPUT_CONNECT_TIMEOUT:-30s} -p "${INPUT_PORT:-22}" "$INPUT_USER"@"$INPUT_HOST" "[ ! -d $REMOTE ]"; then
|
||||||
|
echo "Creating: '$REMOTE' on '$INPUT_USER'@'$INPUT_HOST'"
|
||||||
|
-o StrictHostKeyChecking=no -o ConnectTimeout=${INPUT_CONNECT_TIMEOUT:-30s} -p "${INPUT_PORT:-22}" "$INPUT_USER"@"$INPUT_HOST" "mkdir -p $REMOTE"
|
||||||
|
else
|
||||||
|
echo "'$REMOTE' exists [OK]"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
executeSCP() {
|
executeSCP() {
|
||||||
local USEPASS=$1
|
local USEPASS=$1
|
||||||
local LINES=$2
|
local LINES=$2
|
||||||
@@ -50,6 +66,7 @@ executeSCP() {
|
|||||||
if [[ -z "${LOCAL}" ]] || [[ -z "${REMOTE}" ]]; then
|
if [[ -z "${LOCAL}" ]] || [[ -z "${REMOTE}" ]]; then
|
||||||
echo "LOCAL/REMOTE can not be parsed $LINE"
|
echo "LOCAL/REMOTE can not be parsed $LINE"
|
||||||
else
|
else
|
||||||
|
check_remote_dir $USEPASS $REMOTE
|
||||||
echo "Copying $LOCAL ---> $REMOTE"
|
echo "Copying $LOCAL ---> $REMOTE"
|
||||||
$CMD -r -o StrictHostKeyChecking=no -o ConnectTimeout=${INPUT_CONNECT_TIMEOUT:-30s} -P "${INPUT_PORT:-22}" $LOCAL "$INPUT_USER"@"$INPUT_HOST":$REMOTE > /dev/stdout
|
$CMD -r -o StrictHostKeyChecking=no -o ConnectTimeout=${INPUT_CONNECT_TIMEOUT:-30s} -P "${INPUT_PORT:-22}" $LOCAL "$INPUT_USER"@"$INPUT_HOST":$REMOTE > /dev/stdout
|
||||||
fi
|
fi
|
||||||
|
Reference in New Issue
Block a user