Fórum Root.cz
Hlavní témata => Server => Téma založeno: rooobertek 31. 10. 2012, 20:11:22
-
Ahojte
Potreboval by som sa z domu pripojiť na zdrojáky v práci. Momentálne to riešim cez netbeans. Je tam možnosť "PHP Application from Remote Server" a to mi čiastočne vyhovuje. Vie to po zmene súboru automaticky ho uploadnuť, ale nie je to úplne ideálne riešenie. Páčilo by sa mi riešenie v štýle SSHFS, akurát s lokálnou kópiou, aby som nemusel pri každom vyhľadávaní v súboroch ťahať po sieti pár desiatok alebo stoviek MB.
Zhrnutie: chcem mať u seba stiahnuté súbory a ak sa ktorýkoľvek súbor zmení, nech sa to prejaví na druhej strane prepojenia do pár sekúnd.
Máte niekto tip?
-
rsync po kazdem ulozeni
-
Máte niekto tip?
Dúfam, že to nie je domáca úloha, tak som niečo napísal. Bude to potrebovať inotify-tools. Je to schválne obmedzené tak, aby ti to nezničilo dáta hneď po spustení - ak to bude na pohľad fungovať, tak obmedzenia zmaž.
#!/bin/sh
# Author: branchman
# Licence: prayware ;-)
# Date: 2012/10/31
WATCH_DIRECTORY=/tmp/pom
WATCH_BASE=/tmp/
SSH_LOGIN_STRING=user@host
REMOTE_BASE=public_html/
# masks separated by semicolons (;)
FILE_IGNORE_MASKS=".swp$;.swpx$"
#-------edit next variables only if you know, what you are doing------------------
WATCH_BASE="`echo "${WATCH_BASE}" | sed -e 's/|/\\|/g'`"
GREP_COMMAND="`echo "${FILE_IGNORE_MASKS}" | sed -e 's/"/\\"/g' -e 's/^/grep -e "/' -e 's/$/"/' -e 's/;/" -e "/g'`"
inotifywait -m -r "${WATCH_DIRECTORY}" -e MODIFY,CREATE,DELETE --format "%e %w%f" 2>/dev/null |
while read ACTION FILE; do
if echo "${FILE}" | eval ${GREP_COMMAND} >/dev/null 2>&1; then
continue
fi
LOCAL_BASE="`echo "${FILE}" | sed -e "s|^${WATCH_BASE}||"`"
REMOTE_FILE="${REMOTE_BASE}${LOCAL_BASE}"
REMOTE_FILE_ESCAPED="`echo "${REMOTE_FILE}" | sed -e 's|"|\\"|g'`"
case "${ACTION}" in
*DELETE*)
# delete echo here
echo ssh "${SSH_LOGIN_STRING}" rm \"${REMOTE_FILE_ESCAPED}\"
;;
*MODIFY*|*CREATE*)
# delete echo here
echo scp "${FILE}" "${SSH_LOGIN_STRING}:${REMOTE_FILE}"
;;
esac
done