J'ai découvert que près de 75% des erreurs dans mon syslog sont
WARNING **: Couldn't create directory monitor on smb://x-gnome-default-workgroup/. Error: Operation not supported by backend
Je n'ai pas besoin de pouvoir surveiller les modifications sur l'un de mes partages samba, je veux donc simplement le désactiver pour qu'il n'enregistre pas les journaux. Que fais-je?
Je souffrais du même problème, j'ai essayé de changer les variables d'environnement GVFS et les clés dconf associées, mais je n'ai pas obtenu de bons résultats, alors j'ai décidé de regarder le code source. J'ai trouvé le code suivant dans le fichier daemon/gvfsbackendnetwork.c:
g_warning ("Couldn't create directory monitor on %s. Error: %s\n",
uri, error ? error->message : "");
... qui produit l'avertissement décrit dans la question. Btw, il y a 2 endroits dans ce fichier avec le même avertissement dans les sources Ubuntu GVFS, alors que dans le git de GNOME.org, 1 des entrées est en réalité g_debug, pas g_warning. J'ai décidé de changer les deux appels g_warning dans la version Ubuntu en g_debug simplement parce que ce serait le plus petit correctif pour nettoyer le syslog de ces avertissements bruyants.
Pour reproduire les étapes suivantes, vous devez d'abord activer les référentiels de code source. Puis exécutez les commandes décrites dans le système Terminal (alias bash, sh):
# install build tools
Sudo apt-get install build-essential devscripts fakeroot
# install gvfs build dependencies
Sudo apt-get build-dep gvfs
# create temporary directory for the source code and get it via apt
mkdir ~/src; cd ~/src
apt-get source gvfs
# at the moment I've got gvfs-1.28.2 @ Ubuntu 16.04, update the path if you've got another version
# check g_warning entries to be sure what we're editing:
cat ~/src/gvfs-1.28.2/daemon/gvfsbackendnetwork.c | grep g_warning
g_warning ("Impossible de créer un moniteur de répertoire sur% s. Erreur:% s",
g_warning ("Impossible de créer un moniteur de répertoire sur% s. Erreur:% s",
# replace g_warning to g_debug as described way above
sed --in-place "s/g_warning/g_debug/g" ~/src/gvfs-1.28.2/daemon/gvfsbackendnetwork.c
# go to the source directory root
cd ~/src/gvfs-1.28.2
# bump version, edit changelog if needed, then save the file
dch -i
Cela ressemblera à quelque chose comme:
gvfs (1.28.2-1ubuntu1 ~ 16.04.2ubuntu1) UNRELEASED; urgence = moyenne
Maintenez syslog à l'écart des avertissements non désactivables en les transformant en messages de débogage.
- Habetdin Vendredi 21 décembre 2018 20:00:00 +0300
# finally, build the .deb packages
debuild -b -us -uc
# one level up from the source root - to the compiled .deb packages
cd ..
# install them all
Sudo dpkg -i *.deb
Dernière remarque, description des paramètres de construction que j'ai avec man dpkg-buildpackage
:
-b Spécifie une construction binaire uniquement, aucun fichier source ne doit être construit et/ou distribué.
-us Ne signez pas le paquet source.
-uc Ne signez pas le fichier .changes.
C'est une façon un peu sale de résoudre le problème, mais je n'ai pas trouvé de solution intégrée appropriée, c'est donc pour le moment la seule façon de nettoyer le syslog.