Vous pouvez y parvenir en utilisant inotifywait
de inotify-tools. Votre noyau doit être construit avec CONFIG_INOTIFY_USER=y
pour que cela fonctionne. Vous pouvez le confirmer avec :
~# zcat /proc/config.gz | grep INOTIFY
Ou en vérifiant l'existence du répertoire /proc/sys/fs/inotify
. /proc/config.gz
peut ne pas exister sur tous les appareils en fonction de la configuration de construction du noyau.
Disons que /data/data/com.xyz/files/
est le répertoire que vous souhaitez surveiller.
~$ mkdir -p /sdcard/backup/
~# inotifywait -rm --format '%w%f' -e create /data/data/com.xyz/files/ |
while read file
do
[ -f "$file" ] && cp -av "$file" /sdcard/backup/
done
-e create
est l'événement qui signale qu'un fichier/répertoire est créé dans le répertoire surveillé, --format
est pour obtenir le nom de fichier avec le chemin complet, -m
permet de surveiller en continu et -r
établit des surveillances récursives. -d
peut mettre le processus en tant que démon c'est-à-dire s'exécuter en arrière-plan.
Tous les fichiers nouvellement créés dans le répertoire surveillé ou dans un sous-répertoire seront copiés dans /sdcard/backup
.
Vous pouvez également utiliser busybox inotifyd
pour un cas d'utilisation simple comme expliqué ici. Pour plus d'options, voir inotifywait(1).
CONNEXE : Comment identifier l'application/processus qui remonte en lecture/écriture les partitions, crée des fichiers et modifie les permissions des fichiers ?
0 votes
Je suis presque sûr qu'il y a un moyen de surveiller un répertoire pour détecter des modifications, du moins parfois... Je commencerais par chercher cela
0 votes
@Xen2050 j'ai trouvé la réponse, je peux le faire avec inotify, mais comme le système Linux est sur Android, je ne peux pas l'installer facilement. J'essaie de l'installer
0 votes
Je pense que inotify a raison, je n'ai aucune idée comment le faire fonctionner avec Android non plus. Il est possible qu'un programme/script qui lit simplement un répertoire chaque seconde et copie immédiatement de nouveaux fichiers puisse fonctionner également, mais cela pourrait être intensif en ressources et ralentir les choses.
0 votes
@Xen2050 c'est sur un émulateur donc je ne me soucie pas des performances
0 votes
Pourrait simplement boucler quelques commandes find/ls &
sleep 0.25
alors, peut-être avec un tableau de fichiers trouvés, puis lorsque cela change faire quelque chose?0 votes
@Xen2050 il y a une excellente application appelée busy-box et l'application contient tous les packages importants incluant inotify et il est super facile à utiliser et à installer aussi