
lollol
Membres-
Compteur de contenus
13 -
Inscription
-
Dernière visite
À propos de lollol
.png.96b3b3865e7602c8e02642dcb636f80b.png)
lollol's Achievements
Newbie (1/14)
0
Réputation sur la communauté
-
Ds1513+ Bloqu
lollol a répondu à un(e) sujet de lollol dans Installation, Démarrage et Configuration
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... -
Ds1513+ Bloqu
lollol a répondu à un(e) sujet de lollol dans Installation, Démarrage et Configuration
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... -
Ds1513+ Bloqu
lollol a répondu à un(e) sujet de lollol dans Installation, Démarrage et Configuration
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 -
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.
-
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); }
-
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).
-
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.
-
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...
-
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
-
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!
-
#!/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!!
-
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 çà.
-
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.