• # Gros mélange

    Posté par . En réponse au message Tâche Cron - sysctl: command not found. Évalué à 4. Dernière modification le 31 mars 2020 à 19:15.

    J'ai l'impression qui manque /root/bin au $PATH

    Le dossier /root/bin contient quoi ?
    Il ne contient ni ton script, ni l'exécutable sysctl.
    Donc à quoi servirait ce chemin ?

    /home/script/script_purge_RAM.sh: line 14: sysctl: command not found

    Le message d'erreur est clair : la commande sysctl n'est pas trouvée.
    Il suffit en principe de mettre le chemin complet de l'exécutable dans ton script :

    echo $(/sbin/sysctl vm.drop_caches=3)

    Mais c'est effectivement étrange si le $PATH de cron est celui que tu dis (ce qui n'est pas certain du tout : comment as-tu vérifié que c'est le $PATH lors de l'exécution de ta tâche cron ?).

    purge de la Ram à intervalle régulier car j’observai que cette dernière était utilisée à 98 % très souvent pour rien.

    As-tu des problèmes de saturation de la mémoire ? Par exemple des programmes qui ne peuvent pas se lancer en raison de mémoire insuffisante.

    Quels sont les élément qui te permettent de savoir que cette mémoire est utilisée pour rien ?
    Quel programme l'utilise ? Est-ce une fuite de mémoire ?
    Si c'est un truc totalement inutile, ne peux-tu pas éviter que le programme correspondant ne soit pas lancé ?

    La commande sysctl vm.drop_caches=3 demande au noyau de vider les caches des systèmes de fichiers.
    Donc tu demandes à ton système de ne pas utiliser la mémoire libre pour optimiser les accès disques.
    Lorsque le noyau constate qu'il faut allouer de la mémoire supplémentaire pour les besoins d'un programme, il diminue la taille des caches. Ça permet de profiter de la mémoire inutilisée tout en s'assurant qu'elle est disponible.