Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Matbe.com
  OS, Software, Réseaux
  Autre

  insérer des lignes dans un fichier en ligne de commande linux

Bas de page
Auteur Sujet :

insérer des lignes dans un fichier en ligne de commande linux

n°73457
sebx
Posté le 18-11-2011 à 14:57:45  
 

yop
 
alors voilà, j'ai fait un petit script sur mon NAS qui surveille certains services et les relance si besoin...
Ce script trace son activité dans des fichiers de log
 
j'aimerais bien qu'il me fasse une table dans un fichier HTML qui serait nettement plus simple à consulter
 
du coup j'aimerais savoir comment insérer des lignes au sein du fichier HTML
 
exemple, j'ai dans mon fichier ma table  
 
<table>
<tr>blabla</tr>
</table>
 
et je voudrais arriver à ça :
 
<table>
<tr>blabla</tr>
<tr>blibli</tr>
</table>
 
comment je fais ?  :D


---------------
matbe forever !
mood
Pub
Posté le 18-11-2011 à 14:57:45  
 

n°73458
Ashe
reenignE esreveR
Posté le 18-11-2011 à 15:07:00  
 

Ce serait plus simple avec Perl et de betement faire un appendChild() sur le node apres un coup d'xpath (ou de simplement generer le .xml et avoir le .xsl avec qui change pas)
Parce que la tu vas t'faire chier pendant des heures pour pas grand chose :D
edit: ou encore + simple, tu crees les lignes dans un .js qui est inclu par le html :D


Message édité par Ashe le 18-11-2011 à 15:07:36

---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°73459
sebx
Posté le 18-11-2011 à 15:23:37  
 

perl je connais pas et je sais pas s'il est dispo sur le NAS
le XML ça change pas le souci, faut quand-même insérer des lignes  :D
 
et le .js, j'veux bien une explicassion  :o


---------------
matbe forever !
n°73460
sebx
Posté le 18-11-2011 à 15:25:27  
 

sinon avec SED ça a l'air jouable : http://www.grymoire.com/Unix/Sed.html#uh-41


---------------
matbe forever !
n°73461
Ashe
reenignE esreveR
Posté le 18-11-2011 à 15:27:38  
 

waip mais sed tu vas te suicider
et XML ca change le souci, y a une difference entre taper xml->find('/chemin/vers/le/truc').appendChild() et t'amuser a inserer des trucs :p
le JS suffit de faire un append:
trucs.push({donnees ici});
Puis le html tu inseres le script et dans le onload tu crees les tr :spamafote:


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°73462
LostSoul
Belgian Beer Forever (en slip)
Posté le 18-11-2011 à 15:45:59  
 

pas mieux :jap:


---------------
Le cheval, c'est bon, mangez-en!  
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com | updt-bdnq ]
n°73463
sebx
Posté le 18-11-2011 à 15:48:01  
 

nan mais je veux bien mais concrètement je fais quoi dans mon script :??:
(oui j'ai arrêté le dév depuis un certain temps et le dév web, j'aimais pas  :d )
 
mon script c'est un bête .sh donc faut que tout soit possible en ligne de commande


---------------
matbe forever !
n°73464
LostSoul
Belgian Beer Forever (en slip)
Posté le 18-11-2011 à 15:49:04  
 

taka coder un ptit utilitaire qui le fait :o (sinon perl ca fait plein de trucs du genre effectivement)


---------------
Le cheval, c'est bon, mangez-en!  
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com | updt-bdnq ]
n°73465
sebx
Posté le 18-11-2011 à 15:50:24  
 

faut que je check si PERL est installé de base sur le NAS


---------------
matbe forever !
n°73466
Gwalchmei
Easy rider
Posté le 18-11-2011 à 16:00:56  
 

Installer PERL : 10 s  :o


---------------
La sagesse commence où finit la crainte de Dieu. (André Gide)
Science flies you to the moon, religions fly you into buildings ...
AKA : Super Laïque
n°73467
sebx
Posté le 18-11-2011 à 16:06:10  
 

sur un NAS spa gagné :p
pis le souci c'est pas tant de l'installer que d'apprendre à s'en servir  :d


---------------
matbe forever !
n°73468
sebx
Posté le 18-11-2011 à 16:14:27  
 

sinon avec du php et un fichier CSV ça a l'air jouable aussi


---------------
matbe forever !
n°73469
LostSoul
Belgian Beer Forever (en slip)
Posté le 18-11-2011 à 16:19:15  
 
n°73470
sebx
Posté le 18-11-2011 à 16:24:48  
 

mmm, intéressant, je regarderai si c'est dispo sur le NAS  :jap:


---------------
matbe forever !
n°73471
Ashe
reenignE esreveR
Posté le 18-11-2011 à 16:27:50  
 

ton script tout ckil a a faire c'est un echo de ton info >> fichier.js


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°73472
sebx
Posté le 18-11-2011 à 16:42:07  
 

oui ça j'ai pigé, c'est la partie dans le .html que je vois pas  :d


Message édité par sebx le 18-11-2011 à 16:43:14

---------------
matbe forever !
n°73473
Ashe
reenignE esreveR
Posté le 18-11-2011 à 17:04:19  
 

<script type="text/javascript">var lines = [];</script>
<script type="text/javascript" src="tonmachingenere.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    var parent = $('tbody');
    for (var i = 0; i != lines.length; ++i) {
        var line = lines[i];
        var col1 = $('<td/>').text(line.date);
        var col2 = $('<td/>').text(line.type);
        var col3 = $('<td/>').text(line.chose);
        $('<tr/>').append(col1,col2,col3).appendTo(parent);
    }
});
</script>
...
 
<table cellpadding="0" cellspacing="0">
<thead><tr><th>gnagna</th>...</tr></thead>
<tbody></tbody>
</table>


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°73474
sebx
Posté le 18-11-2011 à 17:29:01  
 

je vais jeter un oeil à ça, thx  :)


---------------
matbe forever !
n°73476
sebx
Posté le 20-11-2011 à 15:32:32  
 

bon, finalement j'me suis fait violence : je l'ai fait en php  :D

 

du coup ça donne

Code :
  1. <table>
  2. <caption>Historique du monitoring</caption>
  3. <thead>
  4. <tr>
  5. <th>Date - Heure</th>
  6. <th>Statut Tomcat</th>
  7. <th>Statut Apache</th>
  8. <th>Statut Squeezebox Server</th>
  9. </tr>
  10. </thead>
  11. <tbody>
  12. <?php
  13. $row = 1;
  14. if (($handle = fopen("data.csv", "r" )) !== FALSE) {
  15.     while (($data = fgetcsv($handle, 1000, ";" )) !== FALSE) {
  16.      echo "<tr>";
  17.         $num = count($data);
  18.         $row++;
  19.         for ($c=0; $c < $num; $c++) {
  20.             echo "<td>", $data[$c] , "</td>";
  21.         }
  22.         echo "</tr>";
  23.     }
  24.     fclose($handle);
  25. }
  26. ?>
  27. </tbody>
  28. </table>
 

et avec mon script .sh qui est lancé par cron, j'écris le dernier résultat en première ligne de mon csv comme ça :

Code :
  1. sed '1i '"${str_csv}"'' $csv > $tmp_csv
  2. mv $tmp_csv $csv
 

résultat : http://hardeman.dyndns.org/monitoring.php

Message cité 1 fois
Message édité par sebx le 20-11-2011 à 15:37:52

---------------
matbe forever !
n°73477
LostSoul
Belgian Beer Forever (en slip)
Posté le 20-11-2011 à 16:03:20  
 

404 :whistle:


---------------
Le cheval, c'est bon, mangez-en!  
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com | updt-bdnq ]
n°73478
sebx
Posté le 20-11-2011 à 16:11:23  
 

Ah :d
Je regarderai ça au bureau, ici j'y accède pas par dyndns


---------------
matbe forever !
n°73479
Ashe
reenignE esreveR
Posté le 20-11-2011 à 19:10:32  
 

Ca va vers /alfresco/monitoring.php faut dire


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°73480
sebx
Posté le 20-11-2011 à 20:13:01  
 

ouaip c'est louche ça... doit y avoir une couille dans mes vhosts


---------------
matbe forever !
n°73481
charlydk
The power of Tiret...
Posté le 20-11-2011 à 20:48:10  
 

sebx a écrit :

bon, finalement j'me suis fait violence : je l'ai fait en php  :D


Tiens, ya une raison spécifique à !== FALSE au lieu de == TRUE?


---------------
FERMETURE DU FORUM MATBE  => retrouvons-nous sur http://www.iwyt.net  :)
n°73482
Ashe
reenignE esreveR
Posté le 20-11-2011 à 20:51:18  
 

== TRUE il passerait pas dans le if mais bon
(la classe, pas comprendre les booleens :D)


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°73483
lesk8vainc​ra
snowboarder
Posté le 20-11-2011 à 21:00:41  
 

jconnais pas PHP, mais j'aurais carrément fait

 
Code :
  1. if (($handle = fopen("data.csv", "r" ))) {
  2.      while (($data = fgetcsv($handle, 1000, ";" ))) {

 

:D

 

(en java en tout cas ca marche :o)

 
Ashe a écrit :

== TRUE il passerait pas dans le if mais bon
(la classe, pas comprendre les booleens :D)

 

explain yourself :o, parce que j'avoue que la je comprend pas trop pourquoi ca ne pourrait pas marcher


Message édité par lesk8vaincra le 20-11-2011 à 21:01:50

---------------
Quand les gens sont de mon avis, j'ai toujours le sentiment de m'être trompé
n°73484
charlydk
The power of Tiret...
Posté le 20-11-2011 à 21:07:39  
 

Ashe a écrit :

== TRUE il passerait pas dans le if mais bon
(la classe, pas comprendre les booleens :D)


Je ne vois pas pq "égal à true" est tellement différent de "différent de false"...  [:spamafote]


---------------
FERMETURE DU FORUM MATBE  => retrouvons-nous sur http://www.iwyt.net  :)
n°73485
Ashe
reenignE esreveR
Posté le 20-11-2011 à 21:24:23  
 

TRUE c'est juste 1, ca sert pas a grand chose
(et accessoirement fopen retourne FALSE quand il foire, c'est pour ca que c'est !== et pas juste !=)
edit:

lesk8vaincra a écrit :

jconnais pas PHP, mais j'aurais carrément fait

et +1 (ce qui a le merite d'eviter d'oublier un = qui ferait passer obligatoirement dans le if :D)

Message cité 1 fois
Message édité par Ashe le 20-11-2011 à 21:33:42

---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°73486
charlydk
The power of Tiret...
Posté le 20-11-2011 à 21:47:04  
 

Ashe a écrit :

TRUE c'est juste 1, ca sert pas a grand chose
(et accessoirement fopen retourne FALSE quand il foire, c'est pour ca que c'est !== et pas juste !=)


J'ai pas compris  :d


---------------
FERMETURE DU FORUM MATBE  => retrouvons-nous sur http://www.iwyt.net  :)
n°73487
LostSoul
Belgian Beer Forever (en slip)
Posté le 20-11-2011 à 22:28:31  
 

charlydk a écrit :


J'ai pas compris  :d


 

Citation :

$a !== $b  Différent  TRUE si $a est différent de $b ou bien qu'ils ne sont pas du même type.


---------------
Le cheval, c'est bon, mangez-en!  
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com | updt-bdnq ]
n°73488
sebx
Posté le 21-11-2011 à 07:31:57  
 

en tout cas ça r0cks  :sol:
 
http://img62.imageshack.us/img62/5347/monitoringw.png


---------------
matbe forever !
n°73489
LostSoul
Belgian Beer Forever (en slip)
Posté le 21-11-2011 à 07:34:35  
 

Ca te sert à quoi ? :p


---------------
Le cheval, c'est bon, mangez-en!  
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com | updt-bdnq ]
n°73490
sebx
Posté le 21-11-2011 à 07:36:30  
 

à voir directement si y'a eu un souci (j'ai l'impression que certaines applis que j'ai déployées font planter Tomcat parfois), le script redémarre les services plantés tout seul comme un grand et il me trace tout dans des fichiers de logs, la page web me sert juste à savoir rapidement si y'a un problème quelque part (redémarrage ok ou pas)


---------------
matbe forever !
n°73491
sebx
Posté le 21-11-2011 à 09:40:23  
 

bon effectivement c'est très louche, il redirige sur alfresco/ alors que cette redirection est censée se faire que pour le vhost alfresco.blabla


---------------
matbe forever !
n°73492
Ashe
reenignE esreveR
Posté le 21-11-2011 à 10:41:36  
 

Probablement le vhost par defaut


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°73493
sebx
Posté le 21-11-2011 à 10:45:44  
 

y'a un ordre à respecter dans le vhosts ?
 
parce qu'effectivement ceux pour alfresco sont avant celui par défaut (qui dans un fichier lu par une commande include)


---------------
matbe forever !
n°73494
Ashe
reenignE esreveR
Posté le 21-11-2011 à 11:00:07  
 

De memoire y a une histoire louche sur l'ordre waip (ce qui est particulierement chiant quand tu fais un include de plein de fichiers (1 par vhost) et que tu sais pas trop dans quel sens ils vont etre inclus)


---------------
pcx360 | Binary Genetics | Dreaming Prophet
“Entropy isn’t what it used to be.”
n°73495
sebx
Posté le 21-11-2011 à 11:06:16  
 

là le souci c'est que le fichier "includé" est généré par le NAS, il sert pour définir les vhosts des applis déployés dans apache (PHP)
ceux que j'ai ajoutés sont dans le .conf d'origine, avant le include de l'autre, ils servent pour Tomcat


---------------
matbe forever !
  FORUM Matbe.com
  OS, Software, Réseaux
  Autre

  insérer des lignes dans un fichier en ligne de commande linux