173 lines
5.5 KiB
Bash
Executable File
173 lines
5.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
italic="\033[3m"
|
|
#underline="\033[4m"
|
|
#ita_under="\033[3;4m"
|
|
#bgd="\033[1;4;31m"
|
|
red="\033[1;31m"
|
|
green="\033[1;32m"
|
|
#yellow="\033[1;33m"
|
|
bold="\033[1m"
|
|
#box="\033[1;41m"
|
|
reset="\033[0m"
|
|
|
|
shopt -s globstar
|
|
|
|
|
|
# Source image folder
|
|
#ln -s ~/Sites/sls/photos/img ~/Pictures/Export/photos-du-mois
|
|
[[ "$input_path" == "" ]] && SRC="$HOME/Sites/sls/photos/img" || SRC="$input_path"
|
|
|
|
# Server
|
|
|
|
server=( "ftp.cluster011.ovh.net" "sur-le-sentier.fr" "clicclac.synology.me" )
|
|
user=( "funnymac" "sentier" "bruno" )
|
|
dest=( "www/zenphoto/albums/photos-du-mois/" "httpdocs/photos/img/" "/volume1/web/photos/img/" )
|
|
port=( "22" "22" "42666" )
|
|
|
|
|
|
: <<'END_COMMENT'
|
|
user=sentier
|
|
server="sur-le-sentier.fr"
|
|
path="httpdocs/photos/img/"
|
|
port=22 # ssh, scp
|
|
|
|
user=bruno
|
|
server="clicclac.synology.me"
|
|
path="/volume1/web/"
|
|
port=42666
|
|
|
|
user=funnymac
|
|
server=ftp.cluster011.ovh.net
|
|
path="www/zenphoto/albums/photos-du-mois/"
|
|
port=22
|
|
|
|
END_COMMENT
|
|
|
|
last_remote_files() {
|
|
current_year=$(date +"%Y")
|
|
last_year=$(( current_year-1 ))
|
|
|
|
for ((i=0 ; i<"${#server[@]}" ; i++))
|
|
do
|
|
#rsync sentier@sur-le-sentier.fr:httpdocs/photos/img/'*' | grep -E "$last_year.jpg|$current_year.jpg"
|
|
|
|
# rsync -e "/usr/bin/ssh -p 42666" --rsync-path=/bin/rsync -zarvh "bruno@clicclac.synology.me:/volume1/web/photos/img/*"
|
|
echo -e "${bold}${server[$i]}${reset}:${dest[$i]}"
|
|
|
|
if [ "${server[$i]}" == "clicclac.synology.me" ]; then
|
|
rsync -e "/usr/bin/ssh -p ${port[$i]}" --rsync-path=/bin/rsync -zarvh "${user[$i]}"@"${server[$i]}":"${dest[$i]}*" | grep -E "$last_year.jpg|$current_year.jpg"
|
|
else
|
|
rsync -zarvh -e "ssh -p ${port[$i]}" "${user[$i]}"@"${server[$i]}":"${dest[$i]}*" | grep -E "$last_year.jpg|$current_year.jpg"
|
|
fi
|
|
echo
|
|
done
|
|
}
|
|
|
|
|
|
# 2022-12-31
|
|
REGEX="(([0-9]{4,}|[Y]{4,})-([0-9]{2,}|[M]{2,})-([0-9]{2,}|[D]{2,}))"
|
|
|
|
# http://patorjk.com/software/taag/#p=display&f=Calvin%20S&t=photo_du_mois.sh
|
|
|
|
echo -e "┌─┐┬ ┬┌─┐┌┬┐┌─┐ ┌┬┐┬ ┬ ┌┬┐┌─┐┬┌─┐ ┌─┐┬ ┬"
|
|
echo -e "├─┘├─┤│ │ │ │ │ │││ │ ││││ ││└─┐ └─┐├─┤"
|
|
echo -e "┴ ┴ ┴└─┘ ┴ └─┘─────┴┘└─┘────┴ ┴└─┘┴└─┘o└─┘┴ ┴"
|
|
echo
|
|
|
|
echo -e "\n${bold}0. Verify last uploads on remote servers ${reset}\n"
|
|
|
|
#last_remote_files
|
|
|
|
echo -e "\n${bold}1. From Lightroom Classic, export ${italic}collection 'Photo du mois'${reset}${bold} => $SRC${reset}\n"
|
|
|
|
echo -e "Done ! <Press Enter>"
|
|
read -r -p ""
|
|
|
|
echo -e "\n${bold}2. Renaming Photos files...${reset}"
|
|
|
|
for FILE in "${SRC}"/**/*.{jpg,jpeg}
|
|
do
|
|
filename=$(basename "$FILE")
|
|
#extension=${filename##*.}
|
|
filename=${filename%.*}
|
|
if [[ $filename =~ $REGEX ]]; then
|
|
MATCH="${BASH_REMATCH[0]}"
|
|
y=$(echo "${MATCH}" | awk -F"-" '{print $1}')
|
|
m=$(echo "${MATCH}" | awk -F"-" '{print $2}')
|
|
if [ "${m:0:1}" = "0" ]; then m=${m:1:7}; fi
|
|
filepath=$(dirname "$FILE")
|
|
newname="$m"_"$y".jpg
|
|
newfilename="$filepath/$m"_"$y".jpg
|
|
|
|
echo -e "Rename ${bold}$filename${reset} to ${bold}$newname${reset}..."
|
|
mv "${FILE}" "$newfilename"
|
|
movies+=("${newfilename}")
|
|
fi
|
|
done
|
|
|
|
if [ "${#movies[@]}" -gt 0 ]; then
|
|
echo -e "\n${bold}${#movies[@]} new images found !${reset}\n"
|
|
else
|
|
echo -e "\n${bold}${red}No new images !${reset}"
|
|
echo -e "${bold}Quit.${reset}\n"
|
|
exit
|
|
fi
|
|
|
|
|
|
for ((i=0 ; i<"${#server[@]}" ; i++))
|
|
do
|
|
|
|
echo -e "\n\n${bold}3. Transfert Photos files to ${italic}${server[$i]}${reset}${bold}...${reset}"
|
|
|
|
if nmap "${server[$i]}" -PN -p "${port[$i]}" | grep open &>/dev/null; then
|
|
|
|
for new in "${movies[@]}"
|
|
do
|
|
echo -e "Transfering ${bold}$new${reset} to ${bold}${server[$i]}${reset}..."
|
|
filename=$(basename "$new")
|
|
#extension=${filename##*.}
|
|
filename=${filename%.*}
|
|
|
|
if [ "${server[$i]}" == "clicclac.synology.me" ]; then
|
|
scp -O -P "${port[$i]}" "$new" "${user[$i]}"@"${server[$i]}":"${dest[$i]}"
|
|
else
|
|
scp -P "${port[$i]}" "$new" "${user[$i]}"@"${server[$i]}":"${dest[$i]}"
|
|
fi
|
|
result=$?
|
|
[ "$result" -eq 0 ] && echo -e "${green}Successful transfert...${reset}\n" || echo -e "${red}Error during transfert !${reset}\n"
|
|
|
|
done
|
|
|
|
|
|
|
|
# scp 5_2022_mozcjpeg.jpg sentier@sur-le-sentier.fr:httpdocs/photos/img/
|
|
# scp 1_2022.jpg funnymac@ftp.cluster011.ovh.net:www/zenphoto/albums/photos-du-mois/
|
|
|
|
if [ "${server[$i]}" == "clicclac.synology.me" ]; then
|
|
rsync -e "/usr/bin/ssh -p ${port[$i]}" --rsync-path=/bin/rsync --exclude-from="$HOME/.exclude-rsync.txt" -zarvh --stats --progress "$SRC/" "${user[$i]}"@"${server[$i]}":"${dest[$i]}"
|
|
else
|
|
rsync --exclude-from="$HOME/.exclude-rsync.txt" -zarvh --stats --progress "$SRC/" "${user[$i]}"@"${server[$i]}":"${dest[$i]}"
|
|
fi
|
|
#result=$?
|
|
#[ "$result" -eq 0 ] && echo -e "\n${green}Successful synchronization...${reset}" || echo -e "\n${red}Error during synchronization !${reset}"
|
|
|
|
#notification "MkDocs: sending Docs to ${server3[server]}..." "${server3[server]}" $result
|
|
|
|
if [ "$i" -eq 0 ]; then
|
|
# Dans zenphoto, mettre en cache les photos
|
|
echo -e "\n${bold}4. Go to ${italic}https://clicclac.info/zenphoto/${reset}${bold} and update cache manager...${reset}\n"
|
|
open https://clicclac.info/zenphoto/zp-core/zp-extensions/cacheManager/cacheImages.php?album=photos-du-mois
|
|
|
|
elif [ "$i" -eq 1 ]; then
|
|
echo -e "\n${bold}4. Open ${italic}https://${server[$i]}/insert_bdd.php${reset}${bold}...${reset}\n"
|
|
open https://"${server[$i]}"/insert_bdd.php
|
|
fi
|
|
|
|
else
|
|
echo -e "\n${bold}${red}Server ${server[$i]} down !${reset}\n"
|
|
fi
|
|
|
|
done
|
|
|