Quel logiciel existe-t-il qui émettra une alerte (haut-parleur PC) lorsqu'il n'y a pas de connexion Internet pendant 5 minutes?
Mon commutateur / routeur semble se déconnecter tous les quelques jours et je veux le réinitialiser quand cela se produit.
PC -- TP-Link switch/router -- FO
192.168.x.1 -- 192.168.x.2 / x.y.z.a -- a.b.c.d
networking
audio
monitoring
Kokizzu
la source
la source
Réponses:
Vous pouvez utiliser une version modifiée de ce script pour faire ce que vous voulez:
Nous sommes "CONNECTED" Exemple
Le débogage étant activé, vous pouvez voir ce que fait le script.
Exécution avec un nom d'hôte valide pour démontrer l'état "connexion établie".
Le ci - dessus quelques initialise des variables et détermine la dernière fois que nous sommes allés dans la boucle,
$lastAccessTime
. Nous essayons maintenant d'envoyer une requête ping à Google.Nous calculons maintenant tout temps d'arrêt
$downTime
, si le ping échoue, sinon, nous remettons$downTime
à zéro et recalculons$lastAccessTime
.Maintenant, nous attendons 15 secondes.
Maintenant, nous vérifions si nous sommes en panne depuis> 5 minutes (300 secondes). Ensuite, nous répétons en parcourant la
while
boucle.Tant que nous sommes debout, il ne se passera rien d'autre que de vérifier avec la
ping
commande toutes les 15 secondes.Nous sommes "DÉCONNECTÉS" Exemple
Maintenant , pour simuler une « connexion est en panne » état, nous échangeons le nom d' hôte et nous utilisons pinger un faux,
google1234567890.com
. En répétant une exécution de notre script avec le débogage activé, nous voyons maintenant des temps d'arrêt réels calculés.Notez au-dessus de cela
$downTime
est égal à 15 secondes jusqu'à présent. Si nous attendons encore un peu, nous verrons ceci:Nous avons accumulé 300 secondes de temps d'arrêt. Alors maintenant , quand nous vérifions, nous imprimons le message,
alert
.Cet état se poursuivra jusqu'à ce que la connexion soit rétablie et
ping
réussisse à nouveau.Et le son?
C'est facile. Vous pouvez utiliser une variété d'outils pour ce faire. J'utiliserais quelque chose comme
sox
oumplayer
pour lire un fichier audio tel qu'un fichier.mp3
ou.wav
avec un son approprié que vous souhaitez entendre toutes les 15 secondes, alors que la connexion est coupée.Remplacez simplement le
alert
message ci-dessus par cette ligne pour obtenir un retour audio indiquant que la connexion est interrompue.Délais de temporisation avec ping
Si vous utilisez
ping
de la manière ci-dessus, vous rencontrerez probablement un retard lent où il fautping
littéralement 10 à 20 secondes pour qu'il échoue lorsque la connexion est coupée. Voir ma réponse à cette Q&R U&L intitulée: Comment rediriger la sortie d'une commande? pour un exemple utilisant l'outil de ligne de commande à lafing
place. Cet outil échouera plus rapidement que le traditionnelping
.la source
beep
commande, est-ce sûr pourchown /dev/tty0
que je puisse l'utiliser sanssudo
?/dev/tty0
.sox
! @Kokizzu - slm a raison de laisser les autorisations sur le/dev/tty0
périphérique seul, mais vous pouvez obtenir un périphérique pseudo-terminal/dev/pts/[num]
- le même type de périphérique de caractères quixterm
utilise pour chaque fenêtre, par exemple - avec quelque chose commescreen
outmux
ou mêmessh
. Vous pouvez les contrôler plus en toute sécurité car ils ne sont de toute façon que des périphériques esclaves du périphérique maître/dev/ptmx
et ne causeront pas le même type de problèmes que, par exemple, un/bin/login
processus appartenant à l'utilisateur - ce qui pourrait arriver dans l'autre cas.aplay alert.wav
est un moyen plus standard de jouer du son car il fait partie du système ALSA et est pré-groupé dans la plupart des distributions.si vous utilisez Linux, vous pouvez utiliser ping dans un script pour
google.com
par exemple:la source
fing
au lieu deping
. Leping
cmd. peut échouer un peu en cas d'échec. Lafing
commande sur le otherhand échouera à moins de 1 seconde. Voir mon A à ce Q & A pour plus: Comment rediriger la sortie d'une commande? . Je montre à la fois en utilisantping
etfing
.sleep 1
suffit pour éviter cela.