2017-09-11 2 views
0

J'ai créé un ensemble de commande linux qui fait un ensemble de ping et conserve le fichier journal dans le fichier 2, qui est date-time_successping et . Je veux faire une action où quand date-time_failping existe, le système Linux enverra un email au PIC. mais le nom de fichier est trop aléatoire car j'ai une date en face de lui. Par exemple. 20170911-160455_failping. J'ai essayé d'utiliser comme -c/-f, mais ils ne peuvent pas rechercher si aucun nom spécifique. il y aura des multiples de fichier avec une variante de dates créée. J'ai donc besoin de conseils à ce sujet. J'espère que n'importe qui pourrait aider.vérifier date_nomfichier.txt existe

grâce

P/S: Je suis désolé si l'information donnée qui ne suffit pas, s'il vous plaît répondre au besoin plus d'informations pour que je puisse essayer de fournir et de me aider à résoudre ce problème.

Cordialement

+0

Je viens de le remarquer. mon nom de fichier est en fait date-time_failping.txt ..... désolé. – WMK

Répondre

0

Vous pouvez le faire quelque chose comme ça en option,

Cette commande est d'obtenir la date d'hier:

VAR1=`date +%Y%m%d -d "yesterday"` 

Ou vous voulez travailler avec la date d'aujourd'hui

VAR1=`date +%Y%m%d ` 
$file = VAR1`__failping` 
if [ -f "$file" ] 
then 
    echo "My message" | mail -s subject [email protected] 
else 
    //Do something else 
end 
0

Vous pouvez utiliser inotify pour surveiller votre événement de création de fichier journal, puis vérifier si le modèle de fichier correspond à xxxxx_failping. Supposons que vos fichiers journaux sont mis en ping_logs, vous pouvez utiliser le script suivant pour surveiller

$ inotifywait -rme create ping_logs/ |awk '{if($NF ~ /[0-9]+-[0-9]+_failping/) print $NF}' 

VOICI imprimer le nom du fichier, vous pouvez modifier à votre action de diffusion.