wip
This commit is contained in:
31
watch
31
watch
@ -2,6 +2,8 @@
|
||||
|
||||
[[ "$TRACE" ]] && set -x
|
||||
|
||||
DEBUG=${DEBUG:-"Unknown Error"}
|
||||
|
||||
function usage {
|
||||
cat <<-EOF
|
||||
Usage: $PROGNAME [OPTIONS] <local-path> <remote-path>
|
||||
@ -37,14 +39,10 @@ while true; do
|
||||
done
|
||||
|
||||
PROGNAME=$0
|
||||
S3_PROG=/s5cmd
|
||||
LOCAL=$1
|
||||
REMOTE=$2
|
||||
|
||||
if [ "$ENDPOINT_URL" ]; then
|
||||
AWS="aws --endpoint-url $ENDPOINT_URL"
|
||||
else
|
||||
AWS=aws
|
||||
fi
|
||||
WATCH_EVENTS=modify
|
||||
|
||||
function restore {
|
||||
if [ "$(ls -A $LOCAL)" ]; then
|
||||
@ -54,14 +52,14 @@ function restore {
|
||||
fi
|
||||
|
||||
echo "restoring $REMOTE => $LOCAL"
|
||||
if ! $AWS s3 sync "$REMOTE" "$LOCAL"; then
|
||||
if ! $S3_PROG sync "$REMOTE/*" "$LOCAL"; then
|
||||
error_exit "restore failed"
|
||||
fi
|
||||
}
|
||||
|
||||
function backup {
|
||||
echo "backup $LOCAL => $REMOTE"
|
||||
if ! $AWS s3 sync "$LOCAL" "$REMOTE" $S3_SYNC_FLAGS; then
|
||||
if ! $S3_PROG sync "$LOCAL" "$REMOTE" $S3_SYNC_FLAGS; then
|
||||
echo "backup failed" 1>&2
|
||||
return 1
|
||||
fi
|
||||
@ -69,7 +67,7 @@ function backup {
|
||||
|
||||
function final_backup {
|
||||
echo "backup $LOCAL => $REMOTE"
|
||||
while ! $AWS s3 sync "$LOCAL" "$REMOTE" $S3_SYNC_FLAGS; do
|
||||
while ! $S3_PROG sync "$LOCAL" "$REMOTE" $S3_SYNC_FLAGS; do
|
||||
echo "backup failed, will retry" 1>&2
|
||||
sleep 1
|
||||
done
|
||||
@ -79,9 +77,18 @@ function final_backup {
|
||||
function idle {
|
||||
echo "ready"
|
||||
while true; do
|
||||
sleep ${BACKUP_INTERVAL:-42} &
|
||||
wait $!
|
||||
[ -n "$BACKUP_INTERVAL" ] && backup
|
||||
restore
|
||||
if [[ -v $RESTORE_INTERVAL ]]; then
|
||||
backup
|
||||
timeout ${RESTORE_INTERVAL} inotifywait -m -e modify -e move -e create -e delete --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %f' $LOCAL | while read date time file; do echo echo "The file '$file' appeared in directory '$path' via '$action'"; backup; done
|
||||
else
|
||||
inotifywait -m -e modify -e move -e create -e delete --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %f' $LOCAL |
|
||||
while read date time file
|
||||
do
|
||||
echo echo "The file '$file' appeared in directory '$path' via '$action'"
|
||||
backup
|
||||
done
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user