Aller au contenu

[résolu] Extinction automatique non souhaitée (script)


Messages recommandés

Bonjour,

J'ai un soucis non bloquant mais assez gênant, j'ai un vieux nas DS410J, qui fonctionne bien mais quand je ne l'utilise pas il s'éteint ...

Le truc c'est que je souhaite savoir qu'est ce qui provoque l'extinction ! car je ne l'ai pas demandé...

Il doit bien y avoir un log quelque part du moment ou il y a le shutdown ?

Modifié par Florent-36
Lien vers le commentaire
Partager sur d’autres sites

La mémoire me revient un peu ... Car oui un 410J ça date ! et je ne ne me souvient pas de tout ce que j'ai fait comme modification  😞

Donc à l'époque j'avais un onduleur non compatible avec le syno et ; donc un script est en place pour faire un ping d'un élément non ondulé , si pas de réponse = shutdown...

Voilà ! 

Maintenant le soucis c'est que je ne retrouve pas ce script ...

- il n'est pas dans crontab

- il n'est pas dans les tâches planifiées 

j'ai tenté un grep sur tout les fichiers *.sh pour recherché "192.168.1.254" et je ne retrouve rien non plus...

Je suis rouillé sur l'utilisation de linux , mais il me semble bien que seul les fichiers sh sont des scripts?

Lien vers le commentaire
Partager sur d’autres sites

J'ai trouvé le coupable : j'ai honte en fait il était bien dans cron mais le nom n'est tellement pas parlant que je l'avais ignoré 😕

c'est /opt/bin/arip

J'ai eu du mal à retrouver l'origine dans le forum car il semble que des vieux messages ont été partiellement perdus :

Pour ceux que ça intéresse voici le script en question :

#!/bin/sh
#
#==========================================================================
# Surveille si le syno est seul sur le réseau par rapport a une liste
# d'adresse IP. Si aucune IP de cette liste ne répond, un second
# test est fais 120 secondes plus tard. Si c'est toujours le cas, le script
# eteindra le SYNO.
#
# Version 1.20
# ----> Un intervale de temps (plage horaire) peut etre defini pour
# neutraliser le script. Temps d'exclusion.
# 
# Dans cette intervale, le script va uniquement faire un test sur lui meme.
# Donc repondre systematiquement => localhost par défaut.
# Il est possible de definir une autre IP d'exclution. Dans ce cas, le
# script testera cette IP dans la plage horaire d'exclusion. Si elle ne
# repond pas, le script eteindra le SYNO apres le second test (120sec).
# Une seule IP d'exclusion possible.
#
# ----> Il est possible de définir un temps d'activation au demarrage.
# Le script s'activera uniquement après boot (10 minutes par defaut).
#
# on arrete le SYNO s'il est toujours seul.
#======================================================
#
# =============================
# Variables generales du script
# =============================
version="1.20b"
intervalle="3"
arret="poweroff"
#arret="echo ..........Arret.."
bip=""
led="5"
ip="192.168.1.254 192.168.1.30"
exclu_deb="0h00"
exclu_fin="0h00"
exclu_ip="localhost"
exclu_upt="10"
#
led_on="4" ; led_off="6" ; dev="ttyS1" ; script=`echo $0`
#
#-----------------------------------------------------------------------------------
clear
echo -e "####################  $nom version $version  ###########################\n"
#
if test "$1" != ""
then
nom=`echo $script | sed -e "s'/..*/''"`
serveur="http://fredo.servehttp.com/dl/syno"
status=`cat /etc/crontab | grep $script | sed -e "s'^.*root.*sh $script'Actif'"`
[ "$status" = "Actif" ] || status="Non-Actif"
#
#-----------------------------------------------------
# Test si l'argument est un chiffre pour le changement 
# de l'intervalle entre 2 tests

 if [ "`expr $1 \* 1 2> /dev/null`" = "$1" ] ; then
  if [ `expr $1 \<= 0 ` -eq 1 ] ; then inter="1" ; echo "ATTENTION  Temps minimum 1 minutes!!" ; fi
  if [ `expr $1 \>= 60 ` -eq 1 ] ; then inter="59" ; echo "ATTENTION  Temps maximum 59 minutes!!" ; fi
  if [ "$intervalle" != "$inter" ] ; then
   if [ "$status" = "Actif" ] ; then
   killall crond ; grep -v $script /etc/crontab > /tmp/crontab
   echo -e "*/"$1"\t*\t*\t*\t*\troot\tsh "$script >> /tmp/crontab
   mv /tmp/crontab /etc/crontab ; sleep 1
   /usr/sbin/crond
   fi
  cat $script | sed -e 's/^intervalle=".*"/intervalle="'$1'"/' > /tmp/arip.$$
  chmod 777 /tmp/arip.$$ ; mv /tmp/arip.$$ $script
  fi
 sh $script info ; exit 0
 fi
#
#-------------------------------------------------------
# Initialise le script avec des valeurs courantes 'init'

 if test "$1" = "init" ; then
  if [ "$status" = "Actif" ] ; then
  killall crond ; grep -v $script /etc/crontab > /tmp/crontab
  echo -e "*/5\t*\t*\t*\t*\troot\tsh "$script >> /tmp/crontab
  mv /tmp/crontab /etc/crontab ; sleep 1
  /usr/sbin/crond
  fi
 routeur=`route | grep -i "default" | awk '{print $2}'`
 cat $script | sed -e 's/^intervalle=".*"/intervalle="5"/; s/^led=".*"/led="5"/; s/^bip=".*"/bip="2"/' \
 -e 's/^exclu_deb=".*"/exclu_deb="0h00"/; s/^exclu_fin=".*"/exclu_fin="0h00"/; s/^exclu_upt=".*"/exclu_upt="10"/' \
 -e 's/^exclu_ip=".*"/exclu_ip="localhost"/; s/^ip=".*"/ip="'$routeur'"/' > /tmp/arip.$$
 chmod 777 /tmp/arip.$$ ; mv /tmp/arip.$$ $script ; sleep 1
 sh $script info ; exit 0
 fi
#
#------------------------------
# Mise a jour du script 'ajour'

 if test "$1" = "ajour" ; then
 [ "$2" = "" ] || serveur=$2
  if [ "`wget -q -O - $serveur/$nom | grep -i $nom`" = "" ] ; then
  echo -e "\n Le serveur : $serveur \n n'est pas accessible pour le moment\n" ; exit 0
  else
  echo -e "\n Le serveur : $serveur a répondu"
  fi
 wget -q -O - $serveur/$nom | sed -e 's/^intervalle=".*"/intervalle="'$intervalle'"/' \
 -e 's/^led=".*"/led="'$led'"/; s/^bip=".*"/bip="'$bip'"/' \
 -e 's/^exclu_deb=".*"/exclu_deb="'$exclu_deb'"/; s/^exclu_fin=".*"/exclu_fin="'$exclu_fin'"/' \
 -e 's/^exclu_upt=".*"/exclu_upt="'$exclu_upt'"/; s/^exclu_ip=".*"/exclu_ip="'$exclu_ip'"/' \
 -e "s/^ip=\".*\"/ip=\"$ip\"/" > $script
 chmod 777 $script ; sleep 1
 sh $script info ; echo -e " Version mise a jour ou remplacement OK\n" ; exit 0
 fi
#
#-----------------------------------------------
# Arret ou reprise de l'execution auto du script

 if test "$1" = "stop" -o "$1" = "start" ; then
 killall crond
 grep -v $script /etc/crontab > /tmp/crontab ; mv /tmp/crontab /etc/crontab
 [ "$1" = "start" ] && echo -e "*/"$intervalle"\t*\t*\t*\t*\troot\tsh "$script >> /etc/crontab ; sleep 1
 /usr/sbin/crond ; sh $script info ; exit 0
 fi
#
#---------------------------------------------------------
# Activation / desactivation du 'bip' ou de le led 'power'

 if test "$1" = "bip" -o "$1" = "led" ; then
 val=""
  case "$1" in
   "bip" ) [ "$bip" = "" ] && val="2";;
   "led" ) [ "$led" = "" ] && val="5";;
  esac
 sed -e 's/^'$1'=".*"/'$1'="'$val'"/' $script > /tmp/arip.$$
 chmod 777  /tmp/arip.$$ ; mv /tmp/arip.$$ $script ; sh $script info ; exit 0
 fi
#
#------------------------------------------------
# Ajout ou suppression d'adresse IP a surveiller

iptest=`echo $1 | sed -e "s/[0-9][0-9]*//g"`
 if test "$iptest" = "..." -o "$iptest" = "-..." -o "$iptest" = "+..." ; then
 ip_new=$ip
  for bo in $* ; do
   case `echo $bo | sed -e "s/[0-9][0-9]*//g"` in
    "..." | "+..." ) ip_new=`echo $ip_new" "$bo | sed -e "s/+//g; s/ /\n/g"  | sort | uniq`;;
    "-..." ) bo=`echo $bo | sed "s/-//"` ; ip_new=`echo $ip_new | sed -e "s/ *$bo//"`;;
   esac
  done
#
  if test "$ip_new" != "$ip" ; then
  ip_new=`echo $ip_new | sed -e "s/^ *//; s/ $//; s/  */ /g"`
  sed -e "s/^ip=\".*\"/ip=\"$ip_new\"/" $script > /tmp/arip.$$
  chmod 777 /tmp/arip.$$ ; mv /tmp/arip.$$ $script
  fi
 sh $script info ; exit 0
 fi
#
#---------------------------------------------------------
# Activation / desactivation du 'bip' ou de le led 'power'

 if test "$1" = "exclu" ; then
 echo -e "Temps debut exclusion ($exclu_deb)\t: \c" ; read q
 [ "$q" != "" ] && exclu_deb=$q
 echo -e "Temps final exclusion ($exclu_fin)\t: \c" ; read q
 [ "$q" != "" ] && exclu_fin=$q
 echo -e "Exclusion IP > $exclu_ip \t: \c" ; read q
 [ "$q" != "" ] && exclu_ip=$q
 echo -e "Exclusion UPTIME min. ($exclu_upt)\t: \c" ; read q
  if [ "$q" != "" ] ; then
   if [ "`expr $q \* 1 2> /dev/null`" = "$q" ] ; then
    if [ `expr $q \<= 0 ` -eq 1 ] ; then exclu_upt="1" ; else exclu_upt=$q ; fi
   fi
  fi
 cat $script | sed -e 's/^exclu_deb=".*"/exclu_deb="'$exclu_deb'"/; s/^exclu_fin=".*"/exclu_fin="'$exclu_fin'"/' \
 -e 's/^exclu_upt=".*"/exclu_upt="'$exclu_upt'"/; s/^exclu_ip=".*"/exclu_ip="'$exclu_ip'"/' > /tmp/arip.$$
 chmod 777 /tmp/arip.$$ ; mv /tmp/arip.$$ $script ; sleep 1
 sh $script info ; exit 0
 fi
#
#---------------------------------------------------
# Information sur l'etat et les parametres du script
#---------------------------------------------------
 if test "$1" = "info"
 then
 echo $nom" 5           => Test toutes les 5 minutes (1~59 maxi)"
 echo $nom" stop,start  => Active / desactive le script"
 echo $nom" init        => Initialise les valeurs par defaut"
 echo $nom" info        => Informe sur les parametres courants"
 echo $nom" ajour       => Verifie et met a jour le script"
 echo $nom" bip,led     => Active ~ desactive le bip ou la LED Power"
 echo $nom" exclu       => Reglage parametres temps exclusion"
 echo ""
 echo $nom" -192.168.0.5 => supprime l'adresse de la liste"
 echo $nom"  192.168.0.2 => ajoute une addresse IP de test"
 echo ""
 echo -e " Valeurs courantes : $intervalle min. > $status \c"
 [ "$led" != "" ] && echo -e "> Led \c" ; [ "$bip" != "" ] && echo -e "> Bip \c"
 echo -e "\n > Temps Exclusion : $exclu_deb à $exclu_fin IP=> $exclu_ip"
 echo -e " > Temps Uptime    : $exclu_upt minutes\n"
 echo "Test IP sur : "`echo "Vide"$ip | sed "s/Vide..*/$ip/"`
 echo
 exit 0
 fi
echo -e "\n Action non reconnue !!\n"
#
exit 0
fi
######################################################################

######################################################################

#======================================================
# On sort du script si la liste d'IP est vide
#
if [ "$ip" = "" ] ; then
echo -e "\n Une adresse IP doit etre renseignée ! \n"
exit 0 ; fi

#======================================================
# Exclusion uptime :
# Permet d'activer le script uniquement lorsque
# l'Uptime est superieur a la variable $exclu-upt
# Temps en minutes.

if [ "$exclu_upt" != "" ] ; then
 if [ `awk '{ printf "%.0f",$1/60}' /proc/uptime` \< $exclu-upt ] ; then
 echo -e "\n Sorti du programme, Temps Uptime ! \n"
 exit 0 ; fi
fi

#======================================================
# Test si on est dans le temps d'exclusion.
# On remplace la liste d'IP par lo variable $exclu_ip
#
if [ "$exclu_deb$exclu_fin" != "0h000h00" ] ; then
t_now=`date "+%H %M" | awk '{print ($1*60)+$2}'`
t_deb=`echo $exclu_deb | sed "s/[hH]/ /" | awk '{print ($1*60)+$2}'`
t_fin=`echo $exclu_fin | sed "s/[hH]/ /" | awk '{print ($1*60)+$2}'`
#
 if [ `expr $t_deb \> $t_fin ` -eq 1 ] ; then
 [ `expr $t_now \< $t_fin ` -eq 1 ] && t_now=`expr $t_now + 1440` ; t_fin=`expr $t_fin + 1440`
 fi
 if [ `expr $t_deb \< $t_now ` -eq 1 ] ; then
 [ `expr $t_fin \> $t_now ` -eq 1 ] && ip=$exclu_ip
 [ "$ip" = "" ] && ip="localhost"
 fi
fi
#

#------------------------------------------------------
# Premier test de connexion :
# La premiere adresse IP qui repond est remonté en tete
# de liste pour obtimiser le prochain controle.

connect="" ; rm -f /tmp/arip.$$
for bo in $ip ; do
 if [ "$connect" = "" ] ; then
 connect=`ping -c 1 $bo 2> /dev/null | grep -i " 0% packet loss"`
  if [ "$connect" != "" ] ; then
  echo -e "Adresse OK : $bo"
   if [ -f /tmp/arip.$$ ] ; then
   ip_new=$bo" "`echo $ip | sed -e "s/$bo//; s/  / /g; s/ $//g"`
   cat $script | sed -e "s/^ip=\".*\"/ip=\"$ip_new\"/" > /tmp/arip.$$
   chmod 777 /tmp/arip.$$ ; mv /tmp/arip.$$ $script
   fi
  else
  echo $bo > /tmp/arip.$$
  fi
 fi
done
echo ; rm -f /tmp/arip.$$
[ "$connect" = "" ] && echo "echec de connexion !"

#------------------------------------------------------
# on attend 2 minutes si pas de connexion.
# et on termine par un second test.

if [ "$connect" = "" ] ; then
[ "$led$bip" != "" ] && echo $led$bip > /dev/$dev
sleep 2
 for bo in $ip ; do
 [ "$bip" != "" ] && echo $bip > /dev/$dev
 [ "$connect" = "" ] &&  connect=`ping -c 1 $bo 2> /dev/null | grep -i " 0% packet loss"`
 done
fi
#
[ "$connect" = "" ] && $arret

[ "$led" = "" ] && echo $led_on  > /dev/$dev
[ "$led" = "" ] || echo $led_off > /dev/$dev
#
#===============================================
# Fin du script 'arip' version du Janvier 2010
# par Fred.

 

 

Lien vers le commentaire
Partager sur d’autres sites

  • Florent-36 a modifié le titre en [résolu] Extinction automatique non souhaitée (script)

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.