59 lines
1.9 KiB
Bash
Executable File
59 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e # Exit if error
|
|
|
|
# Load configuration
|
|
source "$(dirname "$0")/config.sh"
|
|
|
|
# =============================================================================
|
|
# Sync function
|
|
# Usage: sync_ftp PREFIX
|
|
# PREFIX = PHONE or CARD (used to get config vars: ${PREFIX}_FTP_USER, etc.)
|
|
# =============================================================================
|
|
sync_ftp() {
|
|
local PREFIX=$1
|
|
local FTP_USER_var="${PREFIX}_FTP_USER"
|
|
local FTP_PASS_var="${PREFIX}_FTP_PASS"
|
|
local FTP_IP_var="${PREFIX}_FTP_IP"
|
|
local FTP_PORT_var="${PREFIX}_FTP_PORT"
|
|
local DESTINATION_var="${PREFIX}_DESTINATION"
|
|
local LINKS_NAME="${PREFIX}_LINKS"
|
|
|
|
local FTP_USER="${!FTP_USER_var}"
|
|
local FTP_PASS="${!FTP_PASS_var}"
|
|
local FTP_IP="${!FTP_IP_var}"
|
|
local FTP_PORT="${!FTP_PORT_var}"
|
|
local DESTINATION="${!DESTINATION_var}"
|
|
|
|
echo "========================================================="
|
|
echo "Start synchronisation to ${DESTINATION}"
|
|
echo "========================================================="
|
|
|
|
# Set permissions
|
|
find "${DESTINATION}" -type f -exec chmod 644 {} \;
|
|
find "${DESTINATION}" -type d -exec chmod 755 {} \;
|
|
|
|
# Get links array
|
|
eval "local LINKS=(\"\${$LINKS_NAME[@]}\")"
|
|
|
|
# Sync each folder pair
|
|
for ((i=0; i<${#LINKS[@]}; i+=2)); do
|
|
local DISTANT_DIR="${LINKS[i]}"
|
|
local LOCAL_DIR="${LINKS[i+1]}"
|
|
echo "############################## ${DISTANT_DIR} > ${LOCAL_DIR}"
|
|
mkdir -p "${DESTINATION}${LOCAL_DIR}/"
|
|
|
|
if lftp ftp://"${FTP_USER}:${FTP_PASS}@${FTP_IP}:${FTP_PORT}" -e "mirror -e -x .thumbnails -x saved \"${DISTANT_DIR}\" \"${DESTINATION}${LOCAL_DIR}\" ; quit" ; then
|
|
echo "Success :)"
|
|
else
|
|
echo 'Failed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
|
|
fi
|
|
done
|
|
}
|
|
|
|
# =============================================================================
|
|
# Run sync for phone and card
|
|
# =============================================================================
|
|
sync_ftp PHONE
|
|
sync_ftp CARD
|