50 lines
1.2 KiB
Bash
Executable File
50 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
_help() {
|
|
echo '# Scotty v.5
|
|
|
|
Scotty is the most simple network file transfer utility. It provides
|
|
no security what so ever.
|
|
|
|
To expose a file/folder for anyone to catch:
|
|
* scotty up [folder/file name]
|
|
* Pick the hostname from the printed list, and send it to the receiver.
|
|
|
|
To download the exposed folder/file:
|
|
* scotty down [sender host name]
|
|
* Download happens to the current working directory.
|
|
* By default, any existing file is overwritten.
|
|
|
|
Add tar options by modifying a variable:
|
|
* SCOTTY_TAR="pass your tar options here" scotty ...
|
|
|
|
Scotty uses port '$PORT' to transfer files. Downloading host needs
|
|
to see the uploader directly.
|
|
'
|
|
exit
|
|
}
|
|
|
|
PORT=60006
|
|
[[ -z "$2" ]] && _help
|
|
[[ "$1" = "-h" ]] && _help
|
|
|
|
PV=cat
|
|
which pv &> /dev/null && PV=pv
|
|
|
|
[[ "$1" = up ]] && {
|
|
echo Beam me up, Scotty. Waiting for someone to beam $( hostname ) down...
|
|
printf "\n| %15s | %s\n" IP Hostname
|
|
for addr in $( hostname -I ); do
|
|
printf "| %15s | %s\n" $addr $( dig +short -x $addr )
|
|
done
|
|
echo Scotty, beam $( hostname ) down | nc -l $PORT
|
|
echo Transporter locking to signature
|
|
tar -cv $SCOTTY_TAR "$2" | $PV | nc -l $PORT
|
|
}
|
|
[[ "$1" = down ]] && {
|
|
nc -w 10 "$2" $PORT
|
|
sleep 0.5
|
|
nc -w 10 "$2" $PORT | $PV | tar -x $SCOTTY_TAR
|
|
}
|
|
true
|