Aller au contenu

lollol

Membres
  • Compteur de contenus

    13
  • Inscription

  • Dernière visite

À propos de lollol

lollol's Achievements

Newbie

Newbie (1/14)

0

Réputation sur la communauté

  1. hé bien il faut croire a un miracle de noel... en cliquant sur restaurer a partir du DSM present sur le NAS, ca a marché! j'ai toutes mes données, et le NAS avec la version 3810. Je ne sais pas si c'est tres propre mais ca marche. je vais passer un meilleur reveillon...
  2. bonsoir j'ai essayé de telecharger sur le lien GLobal, le lien CHine, avec un PC, un MAC, firefox, chrome, safari. Le fichier est toujours soi disant endommagé. Peut etre un probleme du coté de Synology ? J'ai essayé avec la version 3776 aussi. Joyeux Noel...
  3. Alors, j'ai appuyé sur le bouton power (voyant que le NAS etait manifestement bloqué). Il s'est eteint, je l'ai redemarré. Il apparait en statu configuration perdue. OK. J'ai téléchargé manuellement le DSM 4.3 3810 sur le site de synology. Je dis que je veux réinstaller a parti du fichier présent sur mon PC, il formate la partition système et la il me dit que le fichier est endommagé... lol. BIzarre. Edit : moins lol. j'ai retelechargé le DSM pour etre sur que ca vienne pas de la. J'ai connecté directement mon NAS a l'ethernet du PC puis lancé le logiciel Synology Assistant pour installer le DSM. Pareil fichier endommagé soi disant. pffff
  4. bonjour, j'ai voulu reinstaller le DSM 4.3 3810 de mon 1513+ proprement. J'ai fait un double reset pouis lancé find.synology.com. Manque de bol sur le Web Assistant cela fait bien 2H qu'il est bloqué sur le status Telechargement a 49%. Un DSM prenant 125Mo, j'ai une connexion ADSL 2M mais quand meme... Dans le Synology Assistant (installé sous Windows) il est en status "Mise a jour". Ils disent de ne pas couper l'alimentation. OK. Que dois-je faire ? MERCI PS : j'ai des données sur les disques La LED power bleue est fixe, status clignote en orange, la led de l'interface LAN clignotent un peu en vert.
  5. lollol

    Script Perl Fig

    bon ben il tourne toujours ce soir, pas de plantages, merci a toi CoolRaoul Voici la dernière version : #!/opt/bin/perl use strict; use POSIX qw(strftime); use IO::Socket::INET; use IO::Select; use DBI; use sigtrap 'handler' => &sigtrap, 'HUP', 'INT','ABRT','QUIT','TERM'; my ($selection,$timeout,$socket,$data,$dbh,$t_dt,$query,$sth,$temp_air,$temp_eau,$press_filtr,$tps_filtr,$tps_robot,$filtr_state,@data_table,$flags); $timeout=2; open(FH,">>logmapiscine"); print FH "debutn"; sleep(60); # Creation du socket UDP $socket=new IO::Socket::INET ( PeerAddr=>'192.168.1.254:55555', LocalPort => '55555', Proto=>'udp' ) or die "Erreur creation du socket UDPn"; print FH "socket creen"; $selection = IO::Select->new($socket); #Connexion a la DB $dbh = DBI->connect("DBI:mysql:database=db_mapiscine;host=localhost", "root", "pouet", {AutoCommit => 1}) or die "Connexion impossible a la BDDn"; $dbh->{mysql_auto_reconnect} = 1; print FH "db connecteen"; #init Millenium $data=":010300006D00018Ern"; $socket->send($data); $data=<$socket>; print FH "mill initn"; #preparation requete insertion donnee $query = <<"SQL"; INSERT INTO `db_mapiscine`.`table_mapiscine` (`date_time`, `temp_air`, `temp_eau`, `press_filtr`, `tps_filtr`, `tps_robot`, `filtr_state`) VALUES (?,?,?,?,?,?,?); SQL $sth = $dbh->prepare($query) or die "Erreur preparation"; print FH "req prepareen"; while(1) { do { $query=":04030000FF1810D2rn"; $socket->send($query); print FH "demande envoyéen"; if (my @handles = $selection->can_read($timeout)) { # des données sont arrivées sur le socket my $handle=shift(@handles); $data = <$handle>; }; } until ($data); #Parse data $data=~ s/^.......//; $data=~ s/...$//; $data =~s/(.)/sprintf("%X ",ord($1) & 0x7F)/eg; $data =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg; @data_table = split(/ /,$data); $t_dt=strftime('%Y-%m-%d %H:%M:%S',localtime); $temp_eau=hex($data_table[0].$data_table[1].$data_table[2].$data_table[3])/10; $temp_air=hex($data_table[8].$data_table[9].$data_table[10].$data_table[11])/10; $press_filtr=hex($data_table[16].$data_table[17].$data_table[18].$data_table[19])/100; $tps_filtr=hex($data_table[4].$data_table[5].$data_table[6].$data_table[7]); $tps_robot=hex($data_table[12].$data_table[13].$data_table[14].$data_table[15])/100; $flags=$data_table[20].$data_table[21].$data_table[22].$data_table[23]; $filtr_state=($flags & 0x1) ? 1 : 0; print FH "$t_dt $temp_airn"; $sth->execute($t_dt,$temp_air,$temp_eau,$press_filtr,$tps_filtr,$tps_robot,$filtr_state) or die "Erreur execution"; print FH "requete executeen"; sleep(30); print FH "fin bouclen"; } sub sigtrap(){ print FH "inter detectn"; $dbh->disconnect(); $socket->close(); close(FH); print FH "tout ferme intern"; exit(1); }
  6. lollol

    Script Perl Fig

    vraiment très sympa de m'avoir prémâché le boulot je ne m’attendais pas a tant! :D j'ai donc implémenté le script, je redémarre le NAS et je log toute la nuit pour voir. Ah oui, je viens de désactiver l'hibernation des disques au bout de 30 minutes, même si je pense que vu que le script tournait en boucle ac ne devait rien changer (il plantait au bout de 5 - 6h en plus).
  7. lollol

    Script Perl Fig

    ok merci de ton aide, mais la sur le coup ce soir j'ai pas trop capté leur idée de signal... visiblement il y a une fonction timeout mais celle -ci est désactivée dans IO::Socket....... Je m'y pencherai ce WE pour implémentation, ou alors je passerai en TCP.
  8. lollol

    Script Perl Fig

    Voila les logs : fin boucle data envoyees data recup :0´03±0006²000²003²006´0063000¸003·003²±B 2013-04-09 07:46:51 5 requete executee fin boucle data envoyees data recup :0´03±0006²000²003²006´0063000¸003·003²±B 2013-04-09 07:47:22 5 requete executee fin boucle data envoyees data recup :0´03±0006²000²003²006´0063000¸003·003²±B 2013-04-09 07:47:53 5 requete executee fin boucle data envoyees >> dernière étape du script avant plantage inter detect >> moi qui arrête le script planté Donc je pense que le script au bout d'un moment envoie les data par protocole UDP, mais ne reçoit jamais de réponse de la part du pont wifi/RS232 (le paquet se perd ou je ne sais quoi, c'est l’inconvénient d'UDP je crois), et donc attend indéfiniment qu'il reçoive quelque chose. Je pensais modifier mon script perl pour qu'il refasse une requête si il ne reçoit pas les datas au bout de 1 ou 2 secondes... Je ne sais pas par contre comment faire pour passer la ligne $data=<$socket>; si elle ne reçoit pas de données...
  9. lollol

    Script Perl Fig

    je pense que j'aurais le plantage d'ici demain, je reposterai les logs ici, avec je l'espere un debut d'explication de ma part. merci pour le coup de main
  10. lollol

    Script Perl Fig

    non non je l'ai bien déplacé, en fait je ne savais pas trop ou le mettre, merci de m'avoir aiguillé! Alors le script se lance bien je le vois dans top (8850 1 root S 9012 1.7 0.0 /opt/bin/perl /usr/local/bin/mapiscine.pl) , les fichiers logs sont bien créées dans le /tmp (logmapiscine et monscript.log). Ma db s'increment bien. Par contre les 2 fichiers de log font 0 en taille et sont vide quand je fais un cat dessus. Je pense que le log du script sh n'a rien a dire pour le moment, et que celui du perl est actualisé quand je le ferme ( close(FH) dans l'interruption signal). edit : ok verifié, le logmapiscine se rempli bien lorsque je fais un lancemapiscine.sh stop. Je verrai bien si ca plante et la je pourrais diagnostiquer vu que j'aurais les logs!
  11. lollol

    Script Perl Fig

    #!/bin/sh PATH=/opt/bin:/bin:/usr/bin cd /tmp exec >/tmp/monscript.log 2>&1 case "$1" in start) /usr/local/bin/mapiscine.pl <&- & echo $! > /var/run/mapiscine.pid ;; stop) kill `cat /var/run/mapiscine.pid` rm -f /var/run/mapiscine.pid ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0 Voila le script modifié selon tes conseils! Je redemarre le NAS et je te dis ce qu'il me fais. En tous cas merci de tes precieuses infos. franchement j'apprend des trucs!!
  12. lollol

    Script Perl Fig

    merci pour ta reponse. Ben pour lancer mon script j'utilise le script lancemapiscine.sh présenté au dessus et mis dans /usr/local/etc/rc.d . Le script se lance bien au demarrage, je le vois bien incrementer ma BDD. Il ne doit donc pas se lancer trop tot (grace au sleep(60) dans le perl). Le probleme c'est qu'il semble ne plus tourner au bout de quelques heures... Et du coup j'aimerai logger çà.
  13. Salut, Pour monitorer des parametres de ma piscine, j'ai un automate, qui envoie des données a un convertisseur RS232 vers Wifi. J'accede aux données en envoyant une requete UDP de facon reguliere, et je les stocke sur une db mySQL (clef primaire, date et heure). J'ai voulu faire un script qui demarre et tourne en boucle sur le synology. J'utilise du Perl. Le script et sa procedure de lancement et d'arret semblent bien fonctionner. Le probleme c'est que Voila le script mapiscine.pl pour info (c'est pour communiquer avec un Crouzet Millenium, si ca vous interesse) : #!/opt/bin/perl use strict; use POSIX qw(strftime); use IO::Socket::INET; use DBI; use sigtrap 'handler' => &sigtrap, 'HUP', 'INT','ABRT','QUIT','TERM'; my ($socket,$data,$dbh,$t_dt,$query,$sth,$temp_air,$temp_eau,$press_filtr,$tps_filtr,$tps_robot,$filtr_state,@data_table,$flags); open(FH,">>logmapiscine"); print FH "debutn"; sleep(60); # Creation du socket UDP $socket=new IO::Socket::INET ( PeerAddr=>'192.168.1.254:55555', LocalPort => '55555', Proto=>'udp' ) or die "Erreur creation du socket UDPn"; print FH "socket creen"; #Connexion a la DB $dbh = DBI->connect("DBI:mysql:database=db_mapiscine;host=localhost", "root", "pouet", {AutoCommit => 1}) or die "Connexion impossible a la BDDn"; $dbh->{mysql_auto_reconnect} = 1; print FH "db connecteen"; #init Millenium $data=":010300006D00018Ern"; $socket->send($data); $data=<$socket>; print FH "mill initn"; #preparation requete insertion donnee $query = <<"SQL"; INSERT INTO `db_mapiscine`.`table_mapiscine` (`date_time`, `temp_air`, `temp_eau`, `press_filtr`, `tps_filtr`, `tps_robot`, `filtr_state`) VALUES (?,?,?,?,?,?,?); SQL $sth = $dbh->prepare($query) or die "Erreur preparation"; print FH "req prepareen"; while(1) { #request data $data=":04030000FF1810D2rn"; $socket->send($data); print FH "data envoyeesn"; #read operation $data=<$socket>; print FH "data recup $datan"; #Parse data $data=~ s/^.......//; $data=~ s/...$//; $data =~s/(.)/sprintf("%X ",ord($1) & 0x7F)/eg; $data =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg; @data_table = split(/ /,$data); $t_dt=strftime('%Y-%m-%d %H:%M:%S',localtime); $temp_eau=hex($data_table[0].$data_table[1].$data_table[2].$data_table[3])/10; $temp_air=hex($data_table[8].$data_table[9].$data_table[10].$data_table[11])/10; $press_filtr=hex($data_table[16].$data_table[17].$data_table[18].$data_table[19])/100; $tps_filtr=hex($data_table[4].$data_table[5].$data_table[6].$data_table[7]); $tps_robot=hex($data_table[12].$data_table[13].$data_table[14].$data_table[15])/100; $flags=$data_table[20].$data_table[21].$data_table[22].$data_table[23]; $filtr_state=($flags & 0x1) ? 1 : 0; print FH "$t_dt $temp_airn"; $sth->execute($t_dt,$temp_air,$temp_eau,$press_filtr,$tps_filtr,$tps_robot,$filtr_state) or die "Erreur execution"; print FH "requete executeen"; sleep(30); print FH "fin bouclen"; } sub sigtrap(){ print FH "inter detectn"; $dbh->disconnect(); $socket->close(); close(FH); print FH "tout ferme intern"; exit(1); } Voila le script lancemapiscine.sh dans /usr/local/etc/rc.d qui assure le lancement du script : #!/bin/sh case "$1" in start) ((perl /usr/local/etc/mapiscine.pl) & echo $! > /var/run/mapiscine.pid &) ;; stop) kill `cat /var/run/mapiscine.pid` rm -f /var/run/mapiscine.pid ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac exit 0 Mon premier souci est que je n'arrive pas a logger quoi que ce soit. J'ai tenté de mettre exec >/tmp/monscript.log 2>&1 au debut de mon script shell... Niet! Idem comme vous pouvez le voir dans le script perl (ecriture dans un fichier des print). En fait çà amrche quand je lance le script manuellement via putty, mais quand je redemarre le NAS (pour simuler le fonctionnement reel) le script ne cree pas les fichiers de log... Je sais a quelle heure ca plante uniquement a cause de la derniere entrée de la database MySQL. Quand le script plante, il reste malgré tout dans top, mais la db ne s'increment plus. merci pour votre aide.
×
×
  • 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.