Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 10/02/15 dans toutes les zones

  1. 2 Octobre 2015 J'ai enfin pu effectuer une synchronisation de mon dossier "surveillance" avec Google Drive, en trouvant une bonne solution -qui m'a demandé pas mal de temps- (source ICI) et en exécutant la manip' suivante: 1. Utilisez les logiciels putty ou kitty 2. login root + mot de passe utilisé pour se connecter habituellement à votre NAS 3. Ouvrir surveillance station et supprimer tous les enregistrements existants 4. Dans Putty taper cd /volume1/homes/votredossier/CloudStation/ 5. Créez un nouveau dossier (ici nommé "camsurv") avec la commande mkdir camsurv 6. cd /usr/syno/etc.defaults/rc.d/ 7. vi S99mount.sh 8. Entrez les instructions suivantes pour créer le script qui permettra de copier les vidéos de la caméra de surveillance vers le nouveau répertoire (via un copier-coller) en adaptant au préalable en fonction du nom/chemin de vos répertoires et en n'oubliant pas les " " notamment si vos répertoires comportent des espaces (j'ai mis du temps à trouver ...) : case $1 in start) /bin/mount --bind "/volume1/homes/votredossier/CloudStation/camsurv/" "/volume1/surveillance/camsurv" ;; stop) /bin/umount "/volume1/homes/votredossier/CloudStation/camsurv/" ;; *) echo "Usages: $0 [start|stop]" ;; esac 9. Pour enregistrer le script, 1) utilisez la touche ESC/ECHAP puis 2) tapez :wq (avec les deux points) puis 'Entrée' 10. chmod 755 /usr/syno/etc.defaults/rc.d/S99mount.sh 11. Testez le fonctionnement du script en écrivant ./S99mount.sh start 12. Maintenant faites qq mouvements devant votre camera pour déclencher un enregistrement 13. Vous devriez voir que les enregistrements se copient automatiquement dans le nouveau dossier /volume1/homes/votredossier/CloudStation/camsurv 14. Vous pouvez ensuite paramétrer Cloud Sync pour se synchroniser avec ce nouveau répertoire qui n'est pas protégé par le système 15. CloudSync récupère chaque nouveau fichier vidéo rapidement et le synchronise avec Google Drive ou tout autre site cloud. N'étant ni un spécialiste de Linux ou d' Unix (je suis béotien), je regrette de ne pouvoir vous aider davantage. Frogdivision
    1 point
  2. Bonjour, Pour les propriétaires d'une caméra Foscam FI8918W, un petit script bash qui permet d'activer ou de désactiver l'alarme de mouvement avec prise de photos envoyées par FTP. Il est possible de fusionner ce script avec le précédent de façon à gérer 2 caméras avec Surveillance Station + 1 caméra avec photos prises sur mouvement et uploadées par FTP. #!/bin/sh # script destiné à une caméra FOSCAM FI8918W - activation de la prise de photo en cas de mouvement ou désactivaton # les photos sont uploadées vers FTP # Attention ! une adaptation du script est nécessaire pour d'autres modèles de caméras cd "$PWD/" # se place dans le dossier d'emplacement du script SERVER="xxx.xxx.xxx.xxx:xxxx" # à introduire adresse IP:PORT exemple : 192.168.0.21:7777 USER="xxxxxxxxx" # à introduire PASS="xxxxxxxxx" # à introduire camera="xxxxxxxxxxxx" # à introduire - nom de la caméra statuts_cameras_photos() { # statuts de l'alarme cameras photos ? statut=$(wget -qO - "http://${SERVER}/get_params.cgi?user=${USER}&pwd=${PASS}") stat="est activée" if echo "$statut" | grep 'var alarm_motion_armed=0' >/dev/null 2>&1 ; then stat="n'est pas activée" ; fi } demarre_cameras_photo() { # démarre alarme photo sur caméra # la sensibilité est réglée sur 5 - l'intervalle entre 2 photos est de 10 s - les photos seront uploadées par ftp wget -qO- 2> /dev/null "http://${SERVER}/set_alarm.cgi?user=${USER}&pwd=${PASS}&next_url=alarm.htm&motion_armed=1&motion_sensitivity=5&motion_compensation=0&sounddetect_armed=0&sounddetect_sensitivity=0&iolinkage=0&mail=0&upload_interval=10&schedule_enable=0&schedule_sun_0=0&schedule_sun_1=0&schedule_sun_2=0&schedule_mon_0=0&schedule_mon_1=0&schedule_mon_2=0&schedule_tue_0=0&schedule_tue_1=0&schedule_tue_2=0&schedule_wed_0=0&schedule_wed_1=0&schedule_wed_2=0&schedule_thu_0=0&schedule_thu_1=0&schedule_thu_2=0&schedule_fri_0=0&schedule_fri_1=0&schedule_fri_2=0&schedule_sat_0=0&schedule_sat_1=0&schedule_sat_2=0" > /dev/null 2>&1 } arrete_cameras_photo(){ # arrête alarme photo sur caméra # remet tous les paramètres à 0 wget -qO- 2> /dev/null "http://${SERVER}/set_alarm.cgi?user=${USER}&pwd=${PASS}&next_url=alarm.htm&motion_armed=0&motion_sensitivity=0&motion_compensation=0&sounddetect_armed=0&sounddetect_sensitivity=0&iolinkage=0&mail=0&upload_interval=10&schedule_enable=0&schedule_sun_0=0&schedule_sun_1=0&schedule_sun_2=0&schedule_mon_0=0&schedule_mon_1=0&schedule_mon_2=0&schedule_tue_0=0&schedule_tue_1=0&schedule_tue_2=0&schedule_wed_0=0&schedule_wed_1=0&schedule_wed_2=0&schedule_thu_0=0&schedule_thu_1=0&schedule_thu_2=0&schedule_fri_0=0&schedule_fri_1=0&schedule_fri_2=0&schedule_sat_0=0&schedule_sat_1=0&schedule_sat_2=0" > /dev/null 2>&1 } ####################### gestion de l'alarme sur mouvement d'une caméra -> photo envoyée par FTP ###################### statuts_cameras_photos # vérifie si alarme est activée ou non echo "Statut caméra : l'alarme photo de la $camera $stat" ########## en fonction du paramètre, active l'alarme ou la désactive ########## $1=1 -> active alarme si pas activée if [ "$1" = "1" ] && [ "$stat" = "n'est pas activée" ] ; then demarre_cameras_photo echo "Action -> l'alarme photo de la $camera est activée" fi ######### $1=2 -> désactive alarme si pas désactivé if [ "$1" = "2" ] && [ "$stat" = "est activée" ] ; then arrete_cameras_photo echo "Action -> l'alarme photo de la $camera est arrêtée" fi ##################################################################################################################### # nom du script : check_foscam.sh # admet 1 paramètre # 1 - pour activer l'alarme # 2 - pour désactiver l'alarme # exemple : sh check_foscam.sh 1 # exemple : sh check_foscam.sh 2 # exemple : sh check_foscam.sh (sans paramètre) -> donne simplement le statut de l'alarme
    1 point
  3. Bonjour, Je viens de placer le code du script bash qui permet de créer des archives zip des vidéos enregistrées par Surveillance Station. Ces archives sont placées dans un dossier synchronisé avec Google Drive. Je déclenche ce script en tâche programmée (chaque 5 minutes) sur le Synology. J'ai effectué des tests pendant 4 jours et cela paraît concluant. Pour la mise en place : Copier le script dans un emplacement dédié sur le Synology (/volume1/emplacementscript/) Créer un dossier pour recevoir les archives zip (/volume1/surveillancebis/) Effectuer les adaptations dans le script en fonction des noms de dossier et des noms de caméra Tester en se connectant en ssh avec Putty.exe sous Windows (pour afficher les erreurs à l'écran commenter les lignes chargées de réorienter les erreurs vers un fichier) Se placer dans le répertoire du script et le lancer avec la commande suivante : sh video_rsync.sh (on peut ajouter des paramètres -> voir les explications dans le script) Les tests ont été effectués avec 2 caméras ( intéressant d'avoir les tests avec 1 ou 3 caméras ...) Attention les fichiers vidéos enregistrés par la 1ère caméra sont au format mp4 et ceux de la 2ème caméra sont au format avi. Une adaptation est éventuellement nécessaire au niveau du script. Si le script ne se lance pas, vérifier les droits en exécution. (se placer dans le répertoire du script et exécuter la commande : chmod +x video_rsync.sh) En espérant qu'il n'y aura pas trop de problèmes ... Merci d'avance pour les retours qui me permettront d'améliorer le script. Si tout est ok, on peut alors créer une tâche planifiée via le Planificateur de tâches de Synology. (Créer un script défini par l'utilisateur, indiquer le chemin absolu vers le script et ajouter les paramètres désirés, programmer un démarrage toutes les 5 minutes et enregistrer la tâche.) [EDIT du 23/09/2015] J'ai modifié mon script suite à une recherche sur Internet. Le script démarre et arrête maintenant les caméras en concordance avec l'interface web de Surveillance Station (utilisation de la commande wget -> voir http://forum.synology.com/enu/viewtopic.php?f=82&t=47074&sid=624dd57738d6deeff14282584b77f5b4&start=15 ). Les tests sont concluants. Il faudra que je publie une nouvelle version ... c'est fait ! Reste à trouver comment gérer Cloud Sync de façon similaire ...c'est fait ! Je publie de nouveau le code ... Il restait cependant un problème : comment savoir si Cloud Sync est en pause ou non (voir interface web de Cloud Sync) J'ai la solution et je teste actuellement ... ok cela semble bien fonctionner. voici le code : #!/bin/sh cd "$PWD/" # se place dans le dossier d'emplacement du script # traitement de toutes les erreurs redirigées vers le fichier erreurs_video_rsync.log > erreurs_video_rsync.log # ligne à commenter si on veut les erreurs à l'écran de la console exec 6>&2 # ligne à commenter si on veut les erreurs à l'écran de la console exec 2>>erreurs_video_rsync.log # ligne à commenter si on veut les erreurs à l'écran de la console ID="$RANDOM" USER="xxxxx" # nom d'un utilisateur défini dans Surveillance Station avec les droits sur CloudSync - à introduire PASS="xxxxx" # mot de passe de cet utilisateur - à introduire SERVEUR="xxx.xxx.xxx.xxx:xxxx" # adresse IP du serveur et port de connexion, ex ; "192.168.0.12:9900" - à introduire heure=$(date +%Hh-%Mmin) jour=$(date +%d-%m-%Y) jour_archive=$(date +%Y-%m-%d) #yyyy-mm-dd pour option t de zip # calcule le nombre de minutes depuis le début de ce jour à 00.00 h.m -> utilisé pour la commande find chargée de trouver les fichiers vidéos créés ce jour diff_min=$(date +"%M") diff_heure=$(date +"%H") if [ "${diff_min::1}" == "0" ] ; then diff_min=${diff_min:1} ; fi if [ "${diff_heure::1}" == "0" ] ; then diff_heure=${diff_heure:1} ; fi diff_heure=$(($diff_heure*60)) min_ecoulees=$(($diff_heure+$diff_min)) #rep_1_source et rep_2_source sont les noms des répertoires où Surveillance Station enregistre les fichiers vidéos - on considère 2 caméras rep_1_source="/volume1/surveillance/CameraBureau/" # à adapter - terminer par / rep_2_source="/volume1/surveillance/CameraCouloir/" # à adapter - erminer par / #rep_zip est le nom du répertoire dans lequel sont enregistrées les archives zip - ce dossier est synchronisé avec Google Drive et doit être créé rep_zip="/volume1/surveillancebis/videos/" # à adapter - terminer par / synchro="$1" # si 1 le processus de CloudSynchro est démarré par ce script - si 0, ce script ne gère pas la synchro # si 2 le processus de CloudSynchro est arrêté par ce script # nom de chacune des caméras camera_1="caméra_bureau" camera_2="caméra_couloir" ##################### fonctions de GESTION DES 2 CAMERAS ###################################################### # statuts des cameras actives ou non ? statuts_cameras() { proc="[/]var/packages/SurveillanceStation/target/sbin/ssd -c $1" PID=$(ps -w | grep "$proc" -m1) if [ $? = 0 ] ; then echo "est activée" else echo "n'est pas activée" fi } demarre_cameras() { # activation des 2 caméras en fonction du paramètre intoduit # ancienne méthode d'activation sans concordance avec l'interface web de Surveillance Station #/var/packages/SurveillanceStation/target/sbin/ssd -c "$1" # méthode d'activation des caméras en concordance avec l'interface web de Surveillance Station VER="1" wget -q --keep-session-cookies --save-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=${VER}&account=${USER}&passwd=${PASS}">/dev/null 2>&1 VER="3" wget -q --load-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=Enable&version=${VER}&cameraIds=$1">/dev/null 2>&1 VER="1" wget -q --load-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=${VER}">/dev/null 2>&1 echo "est activée" > $rep_zip"cameras_ON" if [ -e $rep_zip"cameras_OFF" ] ; then rm $rep_zip"cameras_OFF" ; fi } arrete_cameras() { # ancienne méthode de désactivation des caméras sans concordance avec l'interface web de Surveillance Station #proc="[/]var/packages/SurveillanceStation/target/sbin/ssd -c $1" #PID=$(ps -w | grep "$proc" | awk '{ print $1 }') #kill "$PID" # méthode de désactivation des caméras en concordance avec l'interface web de Surveillance Station VER="1" wget -q --keep-session-cookies --save-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=${VER}&account=${USER}&passwd=${PASS}">/dev/null 2>&1 VER="3" wget -q --load-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=Disable&version=${VER}&cameraIds=$1">/dev/null 2>&1 VER="1" wget -q --load-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=${VER}">/dev/null 2>&1 echo "est arrêtée" > $rep_zip"cameras_OFF" if [ -e $rep_zip"cameras_ON" ] ; then rm $rep_zip"cameras_ON" ; fi } demarre_arrete_cloud_sync() { # reprend la synchro lorsqu'elle est en pause ou met en pause lorsqu'elle est active en concordance avec l'interface web de CloudSync # cette fonction reçoit 1 paramètre - soit $1=pause - soit $1=resume # il est nécessaire de définir un utilisateur ayant les droits sur l'exécution de CloudSync (admin avec mot de passe) VER="1" wget -q --keep-session-cookies --save-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=${VER}&account=${USER}&passwd=${PASS}">/dev/null 2>&1 wget -q --load-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/entry.cgi?api=SYNO.CloudSync&method=$1&version=${VER}">/dev/null 2>&1 wget -q --load-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=${VER}">/dev/null 2>&1 } statut_cloud_sync() { # récupère la valeur du PID de Cloud Sync dans le fichier syno-cloud-syncd.pid if [ -f /var/run/syno-cloud-syncd.pid ] ; then PID_cloud_sync=`head -1 /var/run/syno-cloud-syncd.pid` else statclsync="n'est pas installé !" fi if [ -n "$PID_cloud_sync" ] ; then # récupère le statut du processus Cloud Sync (S = actif / T = inactif) STCS=$(ps -w | grep '[/]var/packages/CloudSync/target/sbin/syno-cloud-syncd' | awk '{ print $4 }') statclsync="processus absent" if [ "$STCS" == "T" ] ; then statclsync="processus présent mais non actif" ; fi if [ "$STCS" == "S" ] ; then statclsync="processus présent et actif" ; fi if [ -z "$STCS" ] && [ "$synchro" == "1" ]; then statclsync="processus non présent -> tente de le relancer" # tente de relancer le processus Cloud Sync après un kill -9 /var/packages/CloudSync/target/sbin/syno-cloud-syncd /volume1/@cloudsync/config/daemon.conf fi fi } statut_cloud_sync_web() { # récupère le statut de Cloud Sync en fonction du paramétrage de l'interface web de Cloud Sync statclsyncweb="absent" SCSW="A" VER="1" wget -q --keep-session-cookies --save-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=${VER}&account=${USER}&passwd=${PASS}">/dev/null 2>&1 statut_sync=$(wget -q --load-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/entry.cgi?is_tray=false&api=SYNO.CloudSync&method=list_conn&version=${VER}") wget -q --load-cookies /tmp/syno-cookies-${ID}.txt -O- "http://${SERVEUR}/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=${VER}">/dev/null 2>&1 if echo "$statut_sync" | grep '"is_pause":false' >/dev/null 2>&1 ; then SCSW="R";statclsyncweb="la synchro est lancée" ; fi if echo "$statut_sync" | grep '"is_pause":true' >/dev/null 2>&1 ; then SCSW="P";statclsyncweb="la synchro est en pause" ; fi } ############################################################################################################### # les informations de ce script sont redirigées vers un fichier "demarrage_video_rsync-$jour-$min_ecoulees.log" se trouvant dans le dossier rep_zip # nom du fichier log qui change en fonction du jour et du nombre de minutes écoulées depuis 00h00min fichier_log="demarrage_video_rsync-$jour-$min_ecoulees.log" rm "$rep_zip""demarrage_video_rsync"*".log" # efface les anciens fichiers log echo "***************** Check Surveillance Station processus ********************" | tee "$rep_zip""$fichier_log" echo "Démarrage de l'archivage des vidéos de surveillance le $jour à $heure" | tee -a "$rep_zip""$fichier_log" echo "Chemin absolu du script : $PWD/$0 $1 $2 $3" | tee -a "$rep_zip$fichier_log" echo "Nouveau nom du fichier log = $fichier_log" | tee -a "$rep_zip$fichier_log" ############## GESTION DES 2 CAMERAS ########################################################################## # vérifie l'état d'activation des 2 caméras - appel la fonction statuts_cameras nbr_cameras=0 stat_1=$(statuts_cameras "5") # le paramètre "5" est l'id de la caméra attribué par Surveillance Station stat_2=$(statuts_cameras "6") # le paramètre "6" est l'id de la caméra attribué par Surveillance Station # Pour trouver id de la caméra, ouvrir le fichier "cam_settings.conf" situé dans le sous-dossier de la caméra du répertoire Surveillance # effectuer dans ce fichier texte, une recherche sur "id": # le nombre recherché est celui après les 2 points, ex : ,"id":5, echo "Statut caméra : la $camera_1 $stat_1" | tee -a "$rep_zip$fichier_log" if [ "$stat_1" == "est activée" ] ; then let nbr_cameras++ ; fi echo "Statut caméra : la $camera_2 $stat_2" | tee -a "$rep_zip$fichier_log" if [ "$stat_2" == "est activée" ] ; then let nbr_cameras++ ; fi # active les caméras si demandé $2=1 et si elles ne sont pas déjà actives if [ "$2" == "1" ] && [ "$stat_1" == "n'est pas activée" ] ; then if [ -z "$3" ] ; then tempo="0" else tempo=$3 # 3me paramètre éventuel - nombre de minutes avant d'activer les caméras if [ "$tempo" -gt "4" ] ; then tempo="4" ; fi # la temporisation de mise en marche des caméras ne peut pas dépasser 4 minutes car la tâche planifiée s'effectuera de 5 en 5 minutes ! echo "Les caméras seront activées dans $tempo minute(s)" | tee -a "$rep_zip$fichier_log" sleep $(($tempo*60)) # temporise $3 minutes avant de démarrer les caméras - temps de sortie oblige ! fi stat_1=$(demarre_cameras "5") echo "La $camera_1 $stat_1" | tee -a "$rep_zip""$fichier_log" let nbr_cameras++ fi if [ "$2" == "1" ] && [ "$stat_2" == "n'est pas activée" ] ; then stat_2=$(demarre_cameras "6") echo "La $camera_2 $stat_2" | tee -a "$rep_zip""$fichier_log" let nbr_cameras++ fi # arrête les caméras si demandé $2=2 et si elles ont été activées if [ "$2" == "2" ] && [ "$stat_1" == "est activée" ] ; then stat_1=$(arrete_cameras "5") echo "La $camera_1 $stat_1" | tee -a "$rep_zip""$fichier_log" let nbr_cameras-- fi if [ "$2" == "2" ] && [ "$stat_2" == "est activée" ] ; then stat_2=$(arrete_cameras "6") echo "La $camera_2 $stat_2" | tee -a "$rep_zip""$fichier_log" let nbr_cameras-- fi ##### nombre de caméras activées 0 - 1 ou 2 #echo "Nombre de caméras actives = $nbr_cameras" # enlever "#" en début de cette ligne pour afficher en console echo "Nombre de caméras actives = $nbr_cameras" | tee -a "$rep_zip""$fichier_log" # si le nombre de caméras actives est > 0 alors if [ "$nbr_cameras" -gt "0" ] ; then echo "Surveillance Station processus est actif avec $nbr_cameras caméra(s)" | tee -a "$rep_zip""$fichier_log" else echo "Surveillance Station processus n'est pas actif - $nbr_cameras caméra activée" | tee -a "$rep_zip""$fichier_log" fi ############# GESTION DE LA SYNCHRONISATION avec GOOGLE DRIVE ################################################### statut_cloud_sync # récupère le statut du processus S ou T statclsyncweb="statut interface web ?" # récupère le statut de l'interface web Pause ou Resume if [ -n "$PID_cloud_sync" ] && [ "$STCS" == "S" ]; then statut_cloud_sync_web;fi echo "Cloud Sync $statclsync -> $statclsyncweb" | tee -a "$rep_zip""$fichier_log" # Synchronisation avec Google Drive gérée ou non par ce script # cas où la synchro est gérée par ce script $synchro > 0 ( 1 ou 2 ou 3 ou 4) if [ "$synchro" -gt "0" ] ; then if [ "$STCS" == "S" ] && [ "$synchro" == "1" ]; then # sortie de pause si le processus est en pause P if [ "$SCSW" == "P" ] ; then demarre_arrete_cloud_sync "resume" echo "Relance la synchronisation avec Google Drive gérée par ce script" | tee -a "$rep_zip""$fichier_log" statut_cloud_sync_web # vérifie de nouveau le statut via l'interface web if [ "$SCSW" == "R" ] ; then echo "Cloud Sync $statclsync -> $statclsyncweb" | tee -a "$rep_zip""$fichier_log" fi fi fi if [ "$STCS" == "T" ] ; then kill "-18" "$PID_cloud_sync" # déclenche la Synchro avec Google Drive si elle ne l'était pas - relance le processus mis en veille echo "Démarrage de la synchronisation avec Google Drive gérée par ce script" | tee -a "$rep_zip""$fichier_log" statut_cloud_sync # vérifie le statut statut_cloud_sync_web # vérifie de nouveau le statut via l'interface web if [ "$SCSW" == "P" ] ; then demarre_arrete_cloud_sync "resume" statut_cloud_sync_web # vérifie de nouveau le statut via l'interface web fi echo "Cloud Sync $statclsync -> $statclsyncweb" | tee -a "$rep_zip""$fichier_log" fi else echo "La synchronisation avec Google Drive n'est pas gérée par ce script" | tee -a "$rep_zip""$fichier_log" fi ################################################################################################################# ##################### GESTION DES ARCHIVES ZIP ################################################################## ##### compte le nombre de fichiers vidéos au format mp4 et avi dans chaque répertoire source de Surveillane Station dont la présence remonte au début de ce jour vide_1=$(find "$rep_1_source" \( -iname '*.mp4' -o -iname '*.avi' \) -maxdepth 2 -type f -mmin -$min_ecoulees | wc -l) # pour caméra 1 vide_2=$(find "$rep_2_source" \( -iname '*.mp4' -o -iname '*.avi' \) -maxdepth 2 -type f -mmin -$min_ecoulees | wc -l) # pour caméra 2 echo "nombre de fichiers vidéos pour la caméra 1 = $vide_1" | tee -a "$rep_zip""$fichier_log" echo "nombre de fichiers vidéos pour la caméra 2 = $vide_2" | tee -a "$rep_zip""$fichier_log" # si présence de fichiers mp4 ou avi enregistrés à partir du début de ce jour alors il est possible d'ajouter des fichiers mp4 ou avi à l'archive du jour if [ "$vide_1" -gt "0" ] || [ "$vide_2" -gt "0" ] ; then echo "Il y a des fichiers mp4 et avi enregistrés à la date du $jour dans les sous-répertoires de Surveillance Station" | tee -a "$rep_zip""$fichier_log" echo "jour archive = $jour_archive" | tee -a "$rep_zip""$fichier_log" # taille des 2 fichiers zip avant archivage poids_fichier_1_old=0 if [ -e "$rep_zip"archive-$camera_1-du_"$jour".zip ] ; then poids_fichier_1_old=`du -k "$rep_zip"archive-"$camera_1"-du_"$jour".zip | sed 's/\([0-9]*\)\(.*\)/\1/')` fi poids_fichier_2_old=0 if [ -e "$rep_zip"archive-$camera_2-du_"$jour".zip ] ; then poids_fichier_2_old=`du -k "$rep_zip"archive-"$camera_2"-du_"$jour".zip | sed 's/\([0-9]*\)\(.*\)/\1/')` fi echo "poids fichier 1 old = $poids_fichier_1_old et poids fichier 2 old = $poids_fichier_2_old" | tee -a "$rep_zip""$fichier_log" # recherche des fichiers mp4 ou avi afin de les archiver en ajoutant à l'archive zip if [ "$vide_1" -gt "0" ] ; then find "$rep_1_source" -iname "*.mp4" -type f | zip -jut "$jour_archive" "$rep_zip"archive-$camera_1-du_"$jour".zip -@ fi if [ "$vide_2" -gt "0" ] ; then find "$rep_2_source" -iname "*.avi" -type f | zip -jut "$jour_archive" "$rep_zip"archive-$camera_2-du_"$jour".zip -@ fi # taille des 2 fichiers zip après archivage poids_fichier_1_new=0 if [ -e "$rep_zip"archive-$camera_1-du_"$jour".zip ] ; then poids_fichier_1_new=`du -k "$rep_zip"archive-"$camera_1"-du_"$jour".zip | sed 's/\([0-9]*\)\(.*\)/\1/')` fi poids_fichier_2_new=0 if [ -e "$rep_zip"archive-$camera_2-du_"$jour".zip ] ; then poids_fichier_2_new=`du -k "$rep_zip"archive-"$camera_2"-du_"$jour".zip | sed 's/\([0-9]*\)\(.*\)/\1/')` fi echo "poids fichier 1 new = $poids_fichier_1_new et poids fichier 2 new = $poids_fichier_2_new" | tee -a "$rep_zip$fichier_log" declenche="0" # declenche passe à "1" si des fchiers vidéos sont ajoutés à l'archive zip # comparaison avant et après archivage des fichiers zip si le fichier archive zip existe if [ -e "$rep_zip"archive-$camera_1-du_"$jour".zip ] ; then echo "Le fichier archive-$camera_1-du_"$jour".zip existe" | tee -a "$rep_zip""$fichier_log" if [ "$poids_fichier_1_old" == "$poids_fichier_1_new" ] ; then echo "Aucune vidéo ajoutée à l'archive de la $camera_1 (archive-$camera_1-du_$jour.zip)" | tee -a "$rep_zip""$fichier_log" else echo "Des vidéos ont été ajoutées à l'archive de la $camera_1 (archive-$camera_1-du_$jour.zip)" | tee -a "$rep_zip""$fichier_log" declenche="1" fi else echo "Le fichier archive du $jour de la $camera_1 n'a pas été créé" | tee -a "$rep_zip""$fichier_log" fi if [ -e "$rep_zip"archive-$camera_2-du_"$jour".zip ] ; then echo "Le fichier archive-$camera_2-du_"$jour".zip existe" | tee -a "$rep_zip""$fichier_log" if [ "$poids_fichier_2_old" == "$poids_fichier_2_new" ] ; then echo "Aucune vidéo ajoutée à l'archive de la $camera_2 (archive-$camera_2-du_$jour.zip)" | tee -a "$rep_zip""$fichier_log" else echo "Des vidéos ont été ajoutées à l'archive de la $camera_2 (archive-$camera_2-du_$jour.zip)" | tee -a "$rep_zip""$fichier_log" declenche="1" fi else echo "Le fichier archive du $jour de la $camera_2 n'a pas été créé" | tee -a "$rep_zip""$fichier_log" fi if [ "$synchro" -gt "1" ] ; then # désactive la synchro avec Google Drive if [ "$declenche" == "1" ] ; then echo "Temporisation de 4 minutes afin de synchroniser avec Google Drive" | tee -a "$rep_zip""$fichier_log" sleep 210 # 3 minutes et 30 secondes fi # temporise 4 minutes avant de tuer la tâche de synchro avec Google Drive fi else echo "Pas de fichiers mp4 ou avi du $jour dans le dossier Surveillance, aucun archivage ne sera effectué ce $jour à $heure" | tee -a "$rep_zip""$fichier_log" if [ -e "$rep_zip"archive-$camera_1-du_"$jour".zip ] ; then rm "$rep_zip"archive-$camera_1-du_"$jour".zip # efface le fichier zip fi if [ -e "$rep_zip"archive-$camera_2-du_"$jour".zip ] ; then rm "$rep_zip"archive-$camera_2-du_"$jour".zip # efface le fichier zip fi fi ####################### MISE EN PAUSE ou GELE ou TUE le processus de Cloud Sync ####################################################### # arrêt automatique de la synchronisation en fonction du parmètre intoduit $1=2 et synchro effective "R" pas en pause "P" if [ "$synchro" -gt "1" ] && [ "$SCSW" == "R" ]; then echo "Il reste 30 secondes de temporisation afin de synchroniser avec Google Drive" | tee -a "$rep_zip""$fichier_log" echo "Mise en pause de la synchronisation avec Google Drive gérée par ce script dans 30 secondes" | tee -a "$rep_zip""$fichier_log" sleep 30 # 30 secondes demarre_arrete_cloud_sync "pause" # via interface web de Cloud Synchro echo "Mise en pause de la synchronisation avec Google Drive effectuée" | tee -a "$rep_zip""$fichier_log" fi # gèle le processus s'il est actif -> statut 'T' if [ "$synchro" == "3" ] && [ "$statclsync" != "processus absent" ]; then kill "-19" "$PID_cloud_sync" # gèle le processus - statut "T" -> ne peut pas être relancé via l'interface graphique !!! echo "Le processus Cloud Sync est gelé - statut 'T' (non gérable via l'interface web !)" | tee -a "$rep_zip""$fichier_log" fi # tue le processus s'il est actif if [ "$synchro" == "4" ] && [ "$statclsync" != "processus absent" ]; then kill "-9" "$PID_cloud_sync" # tue le processus -> ne peut pas être relancé via l'interface graphique !!! echo "Le processus Cloud Sync est tué (non gérable via l'interface web !)" | tee -a "$rep_zip""$fichier_log" fi ######################################################################################################################################## # supprime les cookies générés par ce script et présents dans le dossier /tmp rm /tmp/syno-cookies-*.txt exec 2>&6 6>&- # fin de la redirection vers le fichier erreur # ligne à commenter si on veut les erreurs à l'écran de la console exit 0 ####################################################################################################################################### # nom du script = video_rsync.sh admet 3 paramètres séparés par 1 caractère espace # 1er paramètre - 0 - ne gère pas la synchronisation avec Google Drive # - 1 - démarre la synchronisation avec Google Drive si elle ne l'est pas en concordance avec l'interface web # - 2 - met en pause la synchronisation avec Google Drive après 30 secondes ou 4 minutes # - 3 - gèle le processus de synchronisation (processus à T - ingérable via l'interface web !) # - 4 - tue le processus de synchronisation (ingérable via l'interface web !) # 2me paramètre - 0 - ne gère pas le démarrage des 2 caméras # - 1 - démarre les 2 caméras en surveillance si ce n'était pas le cas # - 2 - arrête les 2 caméras en surveillance si ce n'était pas le cas # 3me paramètre - indique le nombre de minutes avant le démarrage des caméras si celles-ci sont gérées par ce script # Attention de ne pas dépasser 4 minutes si la tâche planifiée démarre de 5 en 5 minutes !!!! # lignes de commande possibles dans la console ssh (Putty.exe) : sh video_rsync.sh 0 0 (ou sans paramètre) # : sh video_rsync.sh 1 0 (ou sans le 0) # : sh video_rsync.sh 1 1 3(le mieux pour démarrer !) # : sh video_rsync.sh 2 0 (ou sans le 0) # : sh video_rsync.sh 2 1 # : sh video_rsync.sh 2 2 (le mieux pour arrêter)
    1 point
  4. Ah, je viens de comprendre, y'a un espace dans le nom d'un de tes dossiers, faut donc rajouter des " ET !!!! Il faut que tu crée un dossier dans "video" pour faire le bind, tu peux pas binder sur le répertoire video directement donc : mount -o bind "/DisqueDur-Nico/video/repertoire" "/DisqueDur-Nico/DD - Synology/sav/"
    1 point
Ce classement est défini par rapport à Bruxelles/GMT+02:00
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.