Informations :
Dates
- Publish : : Sunday 11 august 2019
- Modification : Sunday 11 august 2019
Share :
Ayant installer dernièrement le logiciel motion
qui permet de capturer (selon votre caméra) des images à la detection de mouvement.
J'ai plusieurs fichiers qui sont stockés automatiquement dans un seul répertoire. Il y a des fichiers vidéos et des fichiers images.
Je souhaite les déplacer dans un répertoire plus approprié et cela avec la date selon cette arborescence /repertoire/par/default/annee/mois/jour/
.
ls -l /var/lib/motion/ total 69792 -rw-r--r-- 1 root adm 5051616 août 9 18:12 01-20190809180934.avi -rw-r--r-- 1 root adm 44925218 août 9 20:38 04-20190809201830.avi -rw-r--r-- 1 root adm 33473 août 11 12:40 04-20190811195326-203.jpg -rw-r--r-- 1 root adm 31773 août 11 11:48 05-20190809195748-40.jpg -rw-r--r-- 1 root adm 232564 août 9 20:40 05-20190809203858.avi
Je me suis fais un script SHell. Le voici vim /root/motion-check.sh
;)
#!/bin/bash #-------------------------------------------------------------------- # Auteur : LAB3W : O.Romain Jaillet-ramey (orj@lab3w.fr) # # Description : Script pour les contents de motion (camera) # Move images et vidéos dans un répertoire selon la date # # Date Create : 2019-08-11 # Date Modify : 2019-08-11 # #--------------------------------------------------------------------- #DATE="`date +%Y%m%d%H%M%S`"; DATE="`date +%Y/%m/%d`"; #DATE_DAY="`date +%d`"; # --------------------------------------------------------------------------- DIR="/var/lib/motion/"; IMG="*.jpg"; VID="*.avi"; # --------------------------------------------------------------------------- function description_script() { echo "# ---------------------------------------" echo "# Script pour les contents de motion (camera)" echo "# Description : Move images et vidéos dans un répertoire selon la date" echo "# ----" echo "" } function directory_day() { if [ -e ${DIR}${DATE}/ ] && [ -d ${DIR}${DATE}/ ]; then echo -e "Le répertoire de la journée ${DIR}${DATE}/ exist !" else echo -e "On crée le répertoire de la journée ${DIR}${DATE}/" mkdir -p ${DIR}${DATE}/ fi echo "" } function list_videos() { echo "Liste des Vidéos"; echo "" if [ "`ls -l ${DIR}${VID} 2>/dev/null |wc -l`" -ge "1" ]; then for i in ${DIR}${VID}; do file=`echo $i |cut -d/ -f 5 | awk -F - '{ date_now=substr($(date),7,2); day=substr(,7,2); if (date_now != day) print "-" ""substr(,1,4) ""substr(,5,2) ""substr(,7,2) ""substr(,9,4) ""substr(,13,2) ""substr(,15,4)}'`; file_year="`echo $i |cut -d/ -f 5 | awk -F - '{ print substr(,1,4) }'`"; file_month="`echo $i |cut -d/ -f 5 | awk -F - '{ print substr(,5,2) }'`"; file_day="`echo $i |cut -d/ -f 5 | awk -F - '{ print substr(,7,2) }'`"; DIR_4_FILE="${DIR}${file_year}/${file_month}/${file_day}/"; echo " - On se prépare à déplacer ${DIR}$file vers ${DIR_4_FILE}$file"; if [ -e ${DIR_4_FILE} ] && [ -d ${DIR_4_FILE} ]; then echo -e "tLe répertoire ${DIR_4_FILE} exist !"; echo -e "tt+ ${DIR}$file --> ${DIR_4_FILE}$file" mv ${DIR}$file ${DIR_4_FILE}$file echo "" else echo -e "tOn crée le répertoire ${DIR_4_FILE}"; mkdir -p ${DIR_4_FILE} echo -e "tt+ ${DIR}$file --> ${DIR_4_FILE}$file" mv ${DIR}$file ${DIR_4_FILE}$file echo "" fi done; else echo "- Aucune Vidéo"; fi echo "" } function list_images() { echo "Listes des images"; echo "" if [ "`ls -l ${DIR}${IMG} 2>/dev/null |wc -l`" -ge "1" ]; then for i in ${DIR}${IMG}; do file=`echo $i |cut -d/ -f 5 | awk -F - '{ date_now=substr($(date),7,2); day=substr(,7,2); if (date_now != day) print "-" ""substr(,1,4) ""substr(,5,2) ""substr(,7,2) ""substr(,9,4) ""substr(,13,2) "-"}'`; file_year="`echo $i |cut -d/ -f 5 | awk -F - '{ print substr(,1,4) }'`"; file_month="`echo $i |cut -d/ -f 5 | awk -F - '{ print substr(,5,2) }'`"; file_day="`echo $i |cut -d/ -f 5 | awk -F - '{ print substr(,7,2) }'`"; DIR_4_FILE="${DIR}${file_year}/${file_month}/${file_day}/"; echo " - On se prépare à déplacer ${DIR}$file vers ${DIR_4_FILE}$file"; if [ -e ${DIR_4_FILE} ] && [ -d ${DIR_4_FILE} ]; then echo -e "tLe répertoire ${DIR_4_FILE} exist !"; echo -e "tt+ ${DIR}$file --> ${DIR_4_FILE}$file" mv ${DIR}$file ${DIR_4_FILE}$file echo "" else echo -e "tOn crée le répertoire ${DIR_4_FILE}"; mkdir -p ${DIR_4_FILE} echo -e "tt+ ${DIR}$file --> ${DIR_4_FILE}$file" mv ${DIR}$file ${DIR_4_FILE}$file echo "" fi done; else echo "- Aucune Image"; fi echo "" } description_script directory_day list_images list_videos echo "# Fin du script"; echo "# ---------------------------------------"
On execute le script de cette manière : /root/motion-check.sh
après avoir apliqué les droits d'execution chmod u+x motion-check.sh
.
Grâce à ce script j'ai maintenant les vidéos et photos classées par journée. Je m'y retrouve plus facilement ; je peut alors faire des rsync
sur un autre serveur etc. On pourait lancer le script tous les jours en fin de journée par tache planifiée ; une crontab
;)
Cordialement, Romain