All Projects → dingyiyi0226 → spc

dingyiyi0226 / spc

Licence: MIT License
A scp wrapper to manage across multiple remote machines

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to spc

Shoop
scp has a run-in with mosh (alpha)
Stars: ✭ 408 (+2166.67%)
Mutual labels:  scp, file-transfer
LocalFileShare
attempt at file sharing with local wlan n 3ds
Stars: ✭ 13 (-27.78%)
Mutual labels:  file-transfer
tunman
Comprehensive solution for SSH tunnels - respawning, healthchecking/monitoring
Stars: ✭ 43 (+138.89%)
Mutual labels:  remote-machine
grpc-file-transfer
Handy tool for file transfer using Python gRPC
Stars: ✭ 45 (+150%)
Mutual labels:  file-transfer
Jonin
A fully customizable CLI application to coummunicate with and send commands to Ninja running behind any NAT, firewall and proxy! Providing secure shell access, file transfer and shell stream (stream shell output from remote to a local file). Jonin has no prerequisites, you can just download the release and use it right away!
Stars: ✭ 21 (+16.67%)
Mutual labels:  file-transfer
simple http server
simple http server for upload and download
Stars: ✭ 101 (+461.11%)
Mutual labels:  scp
saisoku
Saisoku is a Python module that helps you build complex pipelines of batch file/directory transfer/sync jobs.
Stars: ✭ 40 (+122.22%)
Mutual labels:  file-transfer
WifiFileTransfer
实现 Android 手机之间在局域网下传输任意文件
Stars: ✭ 152 (+744.44%)
Mutual labels:  file-transfer
snestracker
Super Nintendo Entertainment System Music Software. Super Famicom Music Software
Stars: ✭ 161 (+794.44%)
Mutual labels:  spc
LazyTS
PowerShell Script (GUI) to manage Terminal Sessions
Stars: ✭ 85 (+372.22%)
Mutual labels:  remote-machine
rsync
gokrazy rsync
Stars: ✭ 308 (+1611.11%)
Mutual labels:  file-transfer
blessclient
Go client to negotiate SSH certificates
Stars: ✭ 58 (+222.22%)
Mutual labels:  scp
AndroidSSH
Simple SSH and SFTP client for Android
Stars: ✭ 95 (+427.78%)
Mutual labels:  scp
vaultssh
A Go based Vault client to support ssh sessions, remote commands and scp transfers all in memory
Stars: ✭ 25 (+38.89%)
Mutual labels:  scp
ssh-am
SSH ACCOUNT MANAGEMENT
Stars: ✭ 15 (-16.67%)
Mutual labels:  scp
mowoli
Mowoli - A Modality Worklist with RESTful HTTP API
Stars: ✭ 17 (-5.56%)
Mutual labels:  scp
Zaloha2.sh
Small and simple directory synchronizer (a BASH script)
Stars: ✭ 50 (+177.78%)
Mutual labels:  scp
github-action-scp
⬆️ Copy a folder to a remote server using SSH
Stars: ✭ 123 (+583.33%)
Mutual labels:  scp
govpay
Porta di accesso al sistema pagoPA
Stars: ✭ 35 (+94.44%)
Mutual labels:  spc
warp-cli
A CLI tool designed to make interacting with Facebook's Open Source Library "Warp Speed Data Transfer" fast and pain-free.
Stars: ✭ 43 (+138.89%)
Mutual labels:  file-transfer

SPC

SPC lets you transfer files and folders to multiple computers easily.

SPC is a scp wrapper that help you record all remote machines configurations. You can upload/download files to specific remote machine effortlessly.

example

Features

  • Use a short name to identify each remote machine
  • Transfer multiple files/folders simutaneously
  • Intuitive operations

Installation

  1. Clone this repo

    git clone [email protected]:dingyiyi0226/spc.git ~/.spc
    
  2. Define SPC_DIR and initialize spc. For Zsh or other shell user, subsitute .bash_profile for the corresponding configuration file.

    echo 'export SPC_DIR="$HOME/.spc"' >> ~/.bash_profile
    echo 'export PATH="$SPC_DIR/bin:$PATH"' >> ~/.bash_profile
    echo 'eval "$(spc init)"' >> ~/.bash_profile
    
  3. Restart the shell

    exec "$SHELL"
    

How to use

Set up remote machines

  1. Create a remote machine

    spc create mypc [email protected]
    
  2. Set/Modify the configurations if needed (the supported configurations)

    spc update mypc -P=8787 uploaddir=/home/me/Desktop
    
  3. Set the machine as default

    spc default mypc
    
  4. You can also get all remote machines and configurations

    spc remotes
    spc remote mypc
    

Transmit files/folders to remote machines

After setting the machine mypc as default, we can transfer files easliy!

  • Transfer to default machine

    spc file1.txt file2.txt dir1/
    spc download remoteFile1.txt remoteFile2.txt remoteDir1/
    
  • Transfer to specific machine

    spc -r mypc file1.txt file2.txt dir1/
    spc download -r mypc remoteFile1.txt remoteFile2.txt remoteDir1/
    

You can also modify configurations for this command

spc -d /home -c "-P=8787 -p" file.txt
spc download -d /home -c "-P=8787 -p" file.txt

Configurations

For each remote machines, we can store these configurations:

  • address. Must exists, set automatically when you create the machine. Contains the informations of hostname and ip. (e.g. [email protected])
  • uploaddir. The remote directory that stores uploaded files. The default directory is ~/. (Must set as absolute path)
  • downloaddir. The local directory that stores downloaded files. The default directory is ~/. (Must set as absolute path)
  • scp args.

How it works

SPC is a scp wrapper. The configuration used in each scp command is stored under $SPC_DIR (normally $HOME/.spc)

Commands

spc support these commands:

File transmitting commands

Consider this example remote configuration

[email protected]
uploaddir=/home/dingyiyi0226/Documents/
downloaddir=/Users/dingyiyi0226/Downloads/

spc upload

Upload file/folders to remote machine

spc [upload] [-r <remote-name>] [-d <directory>] [-c <config-string>] <file> <file2> <...>

<directory> can be a absolute/relative path if the path w/wo a leading /

Usage
  • spc test.txt
    upload ./text.txt to /home/dingyiyi0226/Documents/text.txt
  • spc -d dir1 test.txt
    upload ./text.txt to /home/dingyiyi0226/Documents/dir1/text.txt
  • spc -d /dir1 test.txt
    upload ./text.txt to /dir1/text.txt

spc download

Download file/folders from remote machine

spc download [-r <remote-name>] [-d <directory>] [-c <config-string>] <file1> <file2> <...>

<directory> can be a absolute/relative path if the path w/wo a leading /

Usage
  • spc download test.txt
    download /home/dingyiyi0226/Documents/text.txt to /Users/dingyiyi0226/Downloads/test.txt
  • spc download -d dir1 test.txt
    download /home/dingyiyi0226/Documents/dir1/text.txt to /Users/dingyiyi0226/Downloads/test.txt
  • spc download -d /dir1 test.txt
    download /dir1/text.txt to /Users/dingyiyi0226/Downloads/test.txt

Remote setting commands

spc create

Create a new remote machine

spc create <remote-name> <address>

spc delete

Delete a remote machine

spc delete <remote-name>

spc update

Update the remote machine configurations

spc update <remote-name> <config> <config2> <...>

spc remove

Remove the remote machine configurations

spc remove <remote-name> <config-key> <config-key2> <...>

spc remote

Show the remote machine configurations

spc remote [<remote-name>]

spc remotes

List all remote machines

spc remotes [--raw]

spc default

Set the default remote machine

spc default <remote-name>

Credits

SPC is inspired by pyenv

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].