|
|
|
|
Bonjour,
Je désire envoyer le contenu d'un fichier vers le port COM de mon serveur à heures régulières via "crontab".
Quelles sont les lignes de commandes permettant :
- d'initialiser et de réinitilialiser le port COM de mon choix
- envoyer un fichier choisi vers ce port COM
??
Mon système fonctionne sous "MS-DOS" sur un PC équipé de Windows 2000 et EasyPHP en utilisant les commandes suivantes :
Mode COM1: BAUD=9600 PARITY=N DATA=8 STOP=2 dtr=off rts=off
et
Type c:\fichier.txt > COM1
J'espère qu'il existe un équivalent exploitable de telles commandes.
MErci d'avance à qui pourra m'aider, je débute avec Linux (...)
:o)
Configuration: http://hp-home.dyndns.org/hp-home/configuration/materiel/materiel.php
Dans la version la plus primitive (sans aucun protocole) c'est:
cat fichier.txt > /dev/ttyS0 mais je ne suis pas sur si ca marche de cette facon brute. Si on veut faire proprement il vaut mieux utiliser les bons logiciels avec un vrai protocole, par exemple avec kermit (ou gkermit): http://www.columbia.edu/kermit/ http://www.columbia.edu/kermit/ck80.html http://www.columbia.edu/kermit/gkermit.html ou les commandes comme "sx", "sz", "rx" (?) dans le paquet "zmodem": http://www.linux.com/howtos/Remote-Serial-Console-HOWTO/ http://www.linux.com/howtos/Remote-Serial-Console-HOWTO/upload-zmodem.shtml Tu trouveras avec google d'autres infos, peut-etre en francais. |
Bonjour,
cat monfichier.txt > /dev/cua0a donné satisfaction. Maintenant, je suis en train de m'arracher les cheveux avec CronD qui n'exécute pas mon script au dates fixées... :o/ Merci encore ! :o) HP |
P.S.
|
Le kermit est tres bien quand les deux cotes le comprennent. En fait dans l'esprit c'est comme ftp mais directement a travers une connexion serielle sans protocole reseau TCP/IP. Moi je l'utilise entre un PC et une calculatrice (HP48SX) et sur la calcultrice on dispose de kermit mais bien sur il n'y a rien a propos de protocoles reseau (avec IP etc.).
/bin/cat fichier > /dev/cua0 (au lieu de "cat fichier > /dev/cua0") et parreil dans le fichier crontab: "... /bin/fichier_script ..." au lieu de "... fichier_script ...". En fait au lieu de modifier le fichier principale de crontab (le "/etc/crontab") tu peux copier ton script dans un des repertoires: /etc/cron.daily/..., /etc/cron.hourly/..., /etc/cron.weekly etc. Avec ca le script sera automatiquement execute soit tous les jours (avec cron.daily), toutes les heurs (avec cron.hourly) ou toutes les semaines (avec cron.weekly). Si ca te convient c'est le plus facile. |
Ok, ok, ok !
|
Bonjour,
# Envoie du message toutes les 10 minutes : */10 * * * * root /usr/local/scripts/message-carte-elec.sh Le fichier "message-carte-elec.sh" contient ceci : #!/bin/sh # script qui envoit le message contenu dans "message.txt" vers la carte électronique # 2005-11-11 by HP # Test de l'existance du fichier "message.txt" if test -s /tmp/message.txt then # Si le fichier existe, on l'envoie ! echo date >> /tmp/message.txt cat /tmp/message.txt > /dev/cua0 else # Sinon, on le dit ! echo "No Message" > /tmp/message.txt echo date >> /tmp/message.txt cat /tmp/message.txt > /dev/cua0 fi # Envoi du message en copie dans l'e-mail mail -s "Message Carte Electronique" root@192.168.0.1 < /tmp/message.txt # Suppression du fichier : rm /tmp/message.txt # Fin du script ! Apparemment, tout à l'air OK mais rien ne sort sur le port série sauf si je lance en manuel (en étant ROOT) avec : bash /usr/local/scripts/message-carte-elec.sh Là, je ne comprends pas. :o(( |
1) Tu n'as pas mis partout de chemins absolus, notamment pas pour le "cat ..." => "/bin/cat ..." et parreil pour "date ..." => "/bin/date ..." et "mail" => /usr/bin/mail ..." (pour "echo" et "rm" je crois ce n'est peut-etre pas necessaire car ce sont de commandes du shell).
/etc/rc.d/init.d/cron stop /etc/rc.d/init.d/cron start |
Merci KMF31.
*/1 * * * * root cat /tmp/message.txt > /dev/cua0 (avec un fichier message.txt non vide, bien sûr) Je suis sûrement tombé sur un "pinguoin" récalcitrant ! ;o) |
No comment (...) :
|
Salut,
|