forked from DyonR/docker-nextcloudcmd-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun.sh
More file actions
82 lines (68 loc) · 3.6 KB
/
run.sh
File metadata and controls
82 lines (68 loc) · 3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
set -e
# check if we should trust selfsigned certificates
if [[ "$TRUST_SELFSIGN" -eq 1 ]]; then
echo "[INFO] TRUST_SELFSIGN is set to $TRUST_SELFSIGN, setting run parameter '--trust'" | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
SELFSIGN="--trust"
fi
# check if we should sync hidden files
if [[ "$SYNC_HIDDEN" -eq 1 ]]; then
echo "[INFO] SYNC_HIDDEN is set to $SYNC_HIDDEN, setting run parameter '-h'" | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
SYNCHIDDEN='-h'
fi
# check if we should silence output
if [[ "$SILENCE_OUTPUT" -eq 1 ]]; then
echo "[INFO] SILENCE_OUTPUT is set to $SILENCE_OUTPUT, setting run parameter '--silent'" | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
SILENCEOUTPUT='--silent'
fi
if [[ "$DEBUG" -eq 1 ]]; then
echo "[INFO] DEBUG = $DEBUG, setting --logdebug" | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
DEBUG='--logdebug'
SILENCEOUTPUT=''
else
DEBUG=''
fi
if [[ "$TRANSFERLIMIT" -eq 1 ]]; then
echo "[INFO] TRANSFERLIMIT enabled --uplimit $UPLIMIT --downlimit $DOWNLIMIT" | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
UP="--uplimit $UPLIMIT"
DOWN="--downlimit $DOWNLIMIT"
else
UP="--uplimit 0"
DOWN="--downlimit 0"
fi
#SETUP PATHS
PATH=(${NEXTCLOUD_FILEPATH})
echo "[INFO] Starting nextcloudclient " | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
while true; do
if [[ "$DEBUG" -eq 1 ]]; then
echo "[INFO] running script " | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
fi
# Is client running? Make sure we aren't doubling up.
if [[ ! -z "$(/usr/bin/ps -C nextcloudcmd --no-headers -o "pid,ppid,sid,comm" | /usr/bin/grep -v "$$ " | /usr/bin/grep -v "<defunct>")" ]]; then
echo "[INFO] client is already running " | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
else
echo "[INFO] client isn't running - starting" | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
# We have two formats for copying
# This is for standard password https://user:pass@ncServer
#echo "[INFO] executing nextcloudcmd $DEBUG $SELFSIGN $SYNCHIDDEN $SILENCEOUTPUT -n --non-interactive --path $FILEPATH /nextclouddata $NEXTCLOUD_PROTO://$NEXTCLOUD_USER:PassWord@$NEXTCLOUD_SERVER " | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
#su - nextcloudclient -c "nextcloudcmd $DEBUG $SELFSIGN $SYNCHIDDEN $SILENCEOUTPUT -n --non-interactive --path $FILEPATH /nextclouddata $NEXTCLOUD_PROTO://$NEXTCLOUD_USER:$NEXTCLOUD_PASS@$NEXTCLOUD_SERVER &> /opt/Nextcloud/log/latest.log"
# Number of dir in array
COUNT=${#PATH[@]}
# Decrement by one as the array starts at 0
COUNT=$((COUNT - 1))
for ((i = 0; i <= COUNT; i++)); do
FILEPATH=${PATH[${i}]}
#echo "This many $COUNT"
echo "[INFO]Executing path $FILEPATH"
# This is -u user -p password https://ncServer
echo "[INFO] executing nextcloudcmd $DEBUG $SELFSIGN $SYNCHIDDEN $SILENCEOUTPUT -u $NEXTCLOUD_USER -p PassKey $UP $DOWN -n --non-interactive --path /$FILEPATH /nextclouddata/$FILEPATH $NEXTCLOUD_PROTO://$NEXTCLOUD_SERVER " | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
/usr/bin/su - nextcloudclient -c "nextcloudcmd $DEBUG $SELFSIGN $SYNCHIDDEN $SILENCEOUTPUT -u $NEXTCLOUD_USER -p $NEXTCLOUD_PASS $UP $DOWN -n --non-interactive --path /$FILEPATH /nextclouddata/$FILEPATH $NEXTCLOUD_PROTO://$NEXTCLOUD_SERVER &>> /opt/Nextcloud/log/latest.log"
echo "[INFO] $FILEPATH client completed" | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
/usr/bin/sleep $JOB_INTERVAL
done
fi
echo "[INFO] complete waiting for $RUN_INTERVAL secs " | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
/usr/bin/sleep $RUN_INTERVAL
echo "[INFO] Wait over!" | /usr/bin/ts '%Y-%m-%d %H:%M:%.S'
echo ""
done