drone-scp alternatives and similar packages
Based on the "DevOps Tools" category.
Alternatively, view drone-scp alternatives based on common mentions on social networks and blogs.
-
Packer
Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. -
webhook
Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server. -
StatusOK
Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected. -
s3gof3r
A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. -
skm
SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily! -
gonative
Tool which creates a build of Go that can cross compile to all platforms while still using the Cgo-enabled versions of the stdlib packages. -
metric
Minimal metrics for Go (counter/gauge/histogram). No dependencies. Compatible with expvar. Web UI included. -
easyssh-proxy
Golang package for easy remote execution through SSH and SCP downloading via ProxyCommand.
Get performance insights in less than 4 minutes
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of drone-scp or a related project?
Popular Comparisons
README
drone-scp
Copy files and artifacts via SSH using a binary, docker or Drone CI.
Feature
- [x] Support routines.
- [x] Support wildcard pattern on source list.
- [x] Support send files to multiple host.
- [x] Support send files to multiple target folder on host.
- [x] Support load ssh key from absolute path or raw body.
- [x] Support SSH ProxyCommand.
+--------+ +----------+ +-----------+
| Laptop | <--> | Jumphost | <--> | FooServer |
+--------+ +----------+ +-----------+
OR
+--------+ +----------+ +-----------+
| Laptop | <--> | Firewall | <--> | FooServer |
+--------+ +----------+ +-----------+
192.168.1.5 121.1.2.3 10.10.29.68
Breaking changes
v1.5.0
: change command timeout flag to Duration
. See the following setting:
- name: scp files
image: appleboy/drone-scp
settings:
host:
- example1.com
- example2.com
username: ubuntu
password:
from_secret: ssh_password
port: 22
- command_timeout: 120
+ command_timeout: 2m
target: /home/deploy/web
source:
- release/*.tar.gz
Build or Download a binary
The pre-compiled binaries can be downloaded from release page. Support the following OS type.
- Windows amd64/386
- Linux arm/amd64/386
- Darwin amd64/386
With Go
installed
export GO111MODULE=on
go get -u -v github.com/appleboy/drone-scp
or build the binary with the following command:
export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
export GO111MODULE=on
go test -cover ./...
go build -v -a -tags netgo -o release/linux/amd64/drone-scp .
Docker
Build the docker image with the following commands:
make docker
Usage
There are three ways to send notification.
Usage from binary
Using public key
drone-scp --host example.com \
--port 22 \
--username appleboy \
--key-path "${HOME}/.ssh/id_rsa" \
--target /home/appleboy/test \
--source your_local_folder_path
Using password
drone-scp --host example.com \
--port 22 \
--username appleboy \
+ --password xxxxxxx \
--target /home/appleboy/test \
--source your_local_folder_path
Using ssh-agent
Start your local ssh agent:
eval `ssh-agent -s`
Import your local public key ~/.ssh/id_rsa
ssh-add
You don't need to add --password
or --key-path
arguments.
drone-scp --host example.com \
--port 22 \
--username appleboy \
--target /home/appleboy/test \
--source your_local_folder_path
Send multiple source or target folder and hosts
drone-scp --host example1.com \
+ --host example2.com \
--port 22 \
--username appleboy \
--password xxxxxxx
--target /home/appleboy/test1 \
+ --target /home/appleboy/test2 \
--source your_local_folder_path_1
+ --source your_local_folder_path_2
Usage from docker
Using public key
docker run --rm \
-e SCP_HOST=example.com \
-e SCP_USERNAME=xxxxxxx \
-e SCP_PORT=22 \
-e SCP_KEY_PATH="${HOME}/.ssh/id_rsa"
-e SCP_SOURCE=SOURCE_FILE_LIST \
-e SCP_TARGET=TARGET_FOLDER_PATH \
-v $(pwd):$(pwd) \
-w $(pwd) \
appleboy/drone-scp
Using password
docker run --rm \
-e SCP_HOST=example.com \
-e SCP_USERNAME=xxxxxxx \
-e SCP_PORT=22 \
+ -e SCP_PASSWORD="xxxxxxx"
-e SCP_SOURCE=SOURCE_FILE_LIST \
-e SCP_TARGET=TARGET_FOLDER_PATH \
-v $(pwd):$(pwd) \
-w $(pwd) \
appleboy/drone-scp
Using ssh-agent, start your local ssh agent:
eval `ssh-agent -s`
Import your local public key ~/.ssh/id_rsa
ssh-add
You don't need to add SCP_PASSWORD
or SCP_KEY_PATH
arguments.
docker run --rm \
-e SCP_HOST=example.com \
-e SCP_USERNAME=xxxxxxx \
-e SCP_PORT=22 \
-e SCP_SOURCE=SOURCE_FILE_LIST \
-e SCP_TARGET=TARGET_FOLDER_PATH \
-v $(pwd):$(pwd) \
-w $(pwd) \
appleboy/drone-scp
Send multiple source or target folder and hosts
docker run --rm \
-e SCP_HOST=example1.com,example2.com \
-e SCP_USERNAME=xxxxxxx \
-e SCP_PASSWORD=xxxxxxx \
-e SCP_PORT=22 \
-e SCP_SOURCE=SOURCE_FILE_LIST_1,SOURCE_FILE_LIST_2 \
-e SCP_TARGET=TARGET_FOLDER_PATH_1,TARGET_FOLDER_PATH_2 \
-v $(pwd):$(pwd) \
-w $(pwd) \
appleboy/drone-scp
Usage from drone ci
Execute from the working directory:
docker run --rm \
-e PLUGIN_HOST=example.com \
-e PLUGIN_USERNAME=xxxxxxx \
-e PLUGIN_PASSWORD=xxxxxxx \
-e PLUGIN_PORT=xxxxxxx \
-e PLUGIN_SOURCE=SOURCE_FILE_LIST \
-e PLUGIN_TARGET=TARGET_FOLDER_PATH \
-e PLUGIN_RM=false \
-e PLUGIN_DEBUG=true \
-v $(pwd):$(pwd) \
-w $(pwd) \
appleboy/drone-scp
You can get more information about how to use scp in drone.
Testing
Test the package with the following command:
make test