67 lines
2.0 KiB
Bash
67 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
echo "::*** rclone [i] to install, [s] to sync, [c] to copy, [w] to web gui, [else] to quit"
|
|
read -p "***:: " ACTION_TYPE
|
|
if [ "$ACTION_TYPE" = 'i' ]
|
|
then
|
|
sudo -v ; curl https://rclone.org/install.sh | sudo bash
|
|
elif [[ "$ACTION_TYPE" = 's' || "$ACTION_TYPE" = 'c' ]]
|
|
then
|
|
if [ "$ACTION_TYPE" = 's' ]
|
|
then
|
|
RC_CMD='sync'
|
|
elif [ "$ACTION_TYPE" = 'c' ]
|
|
then
|
|
RC_CMD='copy'
|
|
fi
|
|
|
|
echo
|
|
echo "::*** from source (default ./)"; read -p "***:: " SOURCE_PATH; if [ ! "$SOURCE_PATH" ]; then SOURCE_PATH="./"; fi
|
|
|
|
echo
|
|
while [ ! "$TARGET_PATH" ]
|
|
do
|
|
echo "::*** to target [remote:path]"
|
|
read -p "***:: " TARGET_PATH
|
|
done
|
|
|
|
# read -p "rclone $RC_CMD with max-age ***:: " MAX_AGE ## 发现用了 max-age 并没有提升速度,反而略有下降,即使对大量现有文件和少量更新文件
|
|
|
|
echo
|
|
echo "excluding files and folders (folders must end with /)"
|
|
read -p "***:: " EXCLUDING;
|
|
|
|
echo
|
|
echo "with [number] files in parallel, default 4"
|
|
read -p "***:: " TRANSFERS;
|
|
if [ ! "$TRANSFERS" ]; then TRANSFERS=4; fi
|
|
|
|
|
|
echo
|
|
echo "with [number] threads simultaneously, default 4";
|
|
read -p "***:: " THREADS;
|
|
if [ ! "$THREADS" ]; then THREADS=4; fi
|
|
|
|
FULL_CMD="rclone $RC_CMD $SOURCE_PATH $TARGET_PATH -P -L --transfers=$TRANSFERS --multi-thread-streams=$THREADS --create-empty-src-dirs --exclude=._* --exclude=.DS_Store --exclude={node_modules/,.deploy_git/,unpackage/,$EXCLUDING}"
|
|
|
|
echo
|
|
echo "*****************************"
|
|
echo $FULL_CMD
|
|
echo "*****************************"
|
|
echo
|
|
echo "Starting? [y] for yes, [anything else] for quit"
|
|
read -p "***:: " YES_OR_NOT
|
|
echo
|
|
if [ "$YES_OR_NOT" = 'y' ]
|
|
then
|
|
echo "****************** [rclone $RC_CMD] Start: `date -u -Iseconds` *****************"
|
|
$FULL_CMD
|
|
echo "****************** [rclone $RC_CMD] Start: `date -u -Iseconds` *****************"
|
|
echo
|
|
rclone ls $TARGET_PATH
|
|
fi
|
|
elif [ "ACTION_TYPE" = 'w' ]
|
|
then
|
|
rclone rcd --rc-web-gui
|
|
fi
|