Add backup.sh
This commit is contained in:
parent
d148cac193
commit
99e993e129
41
backup.sh
Normal file
41
backup.sh
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# rsyncs a path to a remote server
|
||||||
|
|
||||||
|
# Sets Varibles that can be changed
|
||||||
|
SERVER_IP="" # IP of remote server
|
||||||
|
INPUT_PATH="" # Absolute Path to backup
|
||||||
|
EXCLUDE_PATTERN="" # Relitive path to INPUT_PATH to Exclude, can be left as ""
|
||||||
|
REMOTE_USER="" # User on remote server
|
||||||
|
REMOTE_PATH= # Absolute Path on the remote server to backup to. If path has a ' ' in it dont use qotes
|
||||||
|
|
||||||
|
# Sets Varibles for log files
|
||||||
|
DATE=$(date +%Y-%m-%d-%H-%M-%S)
|
||||||
|
LOG_FILE="/log/backup-home/${DATE}.log"
|
||||||
|
|
||||||
|
# Pings server IP to see if it is online
|
||||||
|
ping -c 1 "$SERVER_IP" > /dev/null 2>&1
|
||||||
|
|
||||||
|
# If online run backup
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "$(date) Server $SERVER_IP is online" >> "$LOG_FILE"
|
||||||
|
|
||||||
|
# If there EXCLUDE_PATTERN is not null then set the rsync arguments with the pattern, else set without
|
||||||
|
if [ -n "$EXCLUDE_PATTERN" ]; then
|
||||||
|
RSYNC_ARGS="-avr --exclude=$EXCLUDE_PATTERN $INPUT_PATH"
|
||||||
|
else
|
||||||
|
RSYNC_ARGS="-arv $INPUT_PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run the rsync
|
||||||
|
rsync $RSYNC_ARGS $REMOTE_USER@$SERVER_IP:"$REMOTE_PATH" >> "$LOG_FILE" 2>&1
|
||||||
|
|
||||||
|
# Log whether or not it was sucessfull
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "$(date) Backup successful" >> "$LOG_FILE"
|
||||||
|
else
|
||||||
|
echo "$(date) Backup failed" >> "$LOG_FILE"
|
||||||
|
fi
|
||||||
|
# If not online report in log
|
||||||
|
else
|
||||||
|
echo "$(date) Server $SERVER_IP is offline" >> "$LOG_FILE"
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user