(On ne peut pas éditer ses commentaires, dommage).
Je viens de dire une connerie (le -m servant justement à ça). Une fois tous tes fichiers triés un par un, tu fais un gros sort -m *. Ça fait cent fichiers ouverts mais la progression sera linéaire et ne consomera pas plus de mémoire que nécessaire.
Il existe l'option -m (merge) pour fusionner des fichiers déjà triés. Si tu veux limiter l'impact en mémoire tout en suivant ta progression, tu peux donc commencer par trier tous tes logs un par un, puis fusionner chaque log trié avec un fichier global de résultat.
Bilan, 200 opérations dont chacune sera plus lente que la précédente en ce qui concerne les 100 dernières (la fusion avec le fichier final), mais maîtrise complète et possibilité de trier/fusionner plus de 2 fichiers à la fois si tu as de la mémoire, pour accélérer les choses.
Pour le point décimal, je ne connais pas de solution miracle mais puisque tu vas automatiser le tout avec un script et comme toutes tes lignes commencent par un timestamp dont le format est connu et constant, tu peux peut-être le faire disparaître avec une expression régulière dans tous tes fichiers, et le remettre à sa place de la même façon dans le fichier final (mais il faut des gigas disponibles).
D'ailleurs, ça vaudrait le coup de mettre ça au clair parce que non seulement il n'y a plus rien qui l'indique quand on poste désormais dans les forums mais, en plus, le forum « Astuces » est celui qui est sélectionné par défaut lorsque l'on s'apprête à écrire.
Je rappelle que l'idée était de renvoyer un pointeur pour rester compatible avec printf(), soit mettre la chaîne ainsi formée en argument, et éviter de passer par plusieurs appels successifs.
C'est vrai que ça manque ! En BASIC 128, il y avait STRING$ pour cela, et la classe éponyme de la bibliothèque standard du C++ permet de le faire aussi. Cependant, étant donné que ta série de caractère est une chaîne et si tu veux l'utiliser dans un printf(), le mieux est encore de réécrire la fonction soi-même. Et effectivement, il faudra gérer la mémoire soi-même.
buffer = (char *) malloc(l);
if (buffer)
{
buffer [--l]='\0';
while (l) buffer [--l]=c;
}
return (const char *)buffer;
}
Alors, oui, c'est de l'allocation dynamique, mais au moins on ne garde en mémoire que la dernière chaîne générée, et c'est compatible avec printf(). Tu peux faire un chrstr('x',0); si tu veux libérer le maximum de mémoire, et tu peux même te permettre de faire un free() sur le pointeur si tu es sûr de ne plus jamais rappeler la fonction derrière ...
C'est déjà arrivé. Je ne retrouve plus le lien, malheureusement, donc je ne peux plus me la péter, mais il y avait déjà eu un dégazage massif naturel du fond d'un lac qui avait causé la mort d'un grand nombre de personnes aux alentours.
Côté méthane, s'il y a d'énormes poches qui menacent de s'échapper, ça vaudrait le coup de se mettre à les exploiter massivement également. Au moins, si on les brûle, on libèrera de l'eau et du CO2. Ce serait un moindre mal.
Enfin ce n'est pas trop grave car bientôt Chrome sera utilisable partout et sa conception me parait bien plus raisonnable.
D'ailleurs, Chrome, à en lire la BD, c'est un peu l'OS-inside-a-browser. J'ai parcouru l'explication rapidement, mais il me semble que bon nombre de fonctionnalités vont faire double-emploi avec ce qui devrait être géré par le système ...
C'est pas plus mal, finalement, qu'ils aient fait passer l'interview de Mandriva à la trappe, parce que le reportage (et l'émission entière, en fait) traitait surtout du low-cost. J'aurais bien vu l'amalgame :
« - Comment faites-vous pour faire un PC moins cher ?
- Facile : processeur moins puissant, écran plus petit, pas de lecteur CD/DVD, disque dur moins large et Linux à la place de Windows. »
En plus, il n'ont pas parlé de Mandriva, mais ils n'ont pas parlé de Windows non plus, ni d'un O.S. en général.
Très bien. Ça fera des images toutes faites pour un prochain reportage.
[^] # Re: Alors, à vue de nez
Posté par Obsidian . En réponse au message merger des fichiers de logs. Évalué à 2.
Bon courage.
[^] # Re: Alors, à vue de nez
Posté par Obsidian . En réponse au message merger des fichiers de logs. Évalué à 3.
Je viens de dire une connerie (le -m servant justement à ça). Une fois tous tes fichiers triés un par un, tu fais un gros sort -m *. Ça fait cent fichiers ouverts mais la progression sera linéaire et ne consomera pas plus de mémoire que nécessaire.
# Alors, à vue de nez
Posté par Obsidian . En réponse au message merger des fichiers de logs. Évalué à 2.
Bilan, 200 opérations dont chacune sera plus lente que la précédente en ce qui concerne les 100 dernières (la fusion avec le fichier final), mais maîtrise complète et possibilité de trier/fusionner plus de 2 fichiers à la fois si tu as de la mémoire, pour accélérer les choses.
Pour le point décimal, je ne connais pas de solution miracle mais puisque tu vas automatiser le tout avec un script et comme toutes tes lignes commencent par un timestamp dont le format est connu et constant, tu peux peut-être le faire disparaître avec une expression régulière dans tous tes fichiers, et le remettre à sa place de la même façon dans le fichier final (mais il faut des gigas disponibles).
[^] # Re: /etc/passwd
Posté par Obsidian . En réponse au message probleme de mot de passe. Évalué à 3.
C'est « substitute user », en fait.
[^] # Re: Astuces ?
Posté par Obsidian . En réponse au message Cacher un fichier sous Windows (vfat) depuis Linux. Évalué à 4.
https://linuxfr.org/tracker/875.html
Je n'ai pas vu d'entrée similaire. S'il y en a, pouvez-vous les poster sur la fiche ? Merci.
[^] # Re: Astuces ?
Posté par Obsidian . En réponse au message Cacher un fichier sous Windows (vfat) depuis Linux. Évalué à 6.
# Snif !
Posté par Obsidian . En réponse au journal DDOS romantique. Évalué à 10.
[^] # Re: Intérêt ?
Posté par Obsidian . En réponse au journal Vers un OS automobile ?. Évalué à 2.
C'est même certain puisqu'il faudra toujours un gonz pour rebooter le minuteur ...
[^] # Re: Intérêt ?
Posté par Obsidian . En réponse au journal Vers un OS automobile ?. Évalué à 2.
Pas la boussole, ni le soleil seul.
[^] # Re: Intérêt ?
Posté par Obsidian . En réponse au journal Vers un OS automobile ?. Évalué à 6.
[^] # Re: Intérêt ?
Posté par Obsidian . En réponse au journal Vers un OS automobile ?. Évalué à 5.
Ça s'appelle un sextant (et une horloge H4 pour aller avec :-) http://fr.wikipedia.org/wiki/John_Harrison_(horloger) ).
[^] # Re: Aaah ! STRING$
Posté par Obsidian . En réponse au message Comment répeter un caractère avec printf. Évalué à 2.
[^] # Re: Aaah ! STRING$
Posté par Obsidian . En réponse au message Comment répeter un caractère avec printf. Évalué à 2.
Oups ! Oubli de ma part, désolé. Je l'ai écrit à l'arrache avant d'aller prendre le train ...
# Aaah ! STRING$
Posté par Obsidian . En réponse au message Comment répeter un caractère avec printf. Évalué à 2.
Voici ce que je te propose :
const char * chrstr (const char c,unsigned int l)
{
static unsigned int length = 0;
static char * buffer = NULL;
++l; // Pour le '\0' final.
if (l != length && buffer != NULL)
{
free (buffer);
buffer = NULL;
}
buffer = (char *) malloc(l);
if (buffer)
{
buffer [--l]='\0';
while (l) buffer [--l]=c;
}
return (const char *)buffer;
}
Alors, oui, c'est de l'allocation dynamique, mais au moins on ne garde en mémoire que la dernière chaîne générée, et c'est compatible avec printf(). Tu peux faire un chrstr('x',0); si tu veux libérer le maximum de mémoire, et tu peux même te permettre de faire un free() sur le pointeur si tu es sûr de ne plus jamais rappeler la fonction derrière ...
[^] # Re: Ca peut aller plus vite qu'on ne le pense !
Posté par Obsidian . En réponse au journal Environnement: la bombe à retardement du méthane est enclenchée. Évalué à 4.
[^] # Re: Ca peut aller plus vite qu'on ne le pense !
Posté par Obsidian . En réponse au journal Environnement: la bombe à retardement du méthane est enclenchée. Évalué à 10.
Côté méthane, s'il y a d'énormes poches qui menacent de s'échapper, ça vaudrait le coup de se mettre à les exploiter massivement également. Au moins, si on les brûle, on libèrera de l'eau et du CO2. Ce serait un moindre mal.
[^] # Re: 36 35
Posté par Obsidian . En réponse au journal SNCF, plus belle la vie !. Évalué à 2.
[^] # Re: Barre d'outils du site
Posté par Obsidian . En réponse au message LinuxFR et Firefox 3.0.x - 64bits -> la tortue. Évalué à 3.
D'ailleurs, Chrome, à en lire la BD, c'est un peu l'OS-inside-a-browser. J'ai parcouru l'explication rapidement, mais il me semble que bon nombre de fonctionnalités vont faire double-emploi avec ce qui devrait être géré par le système ...
[^] # Re: Chemin de fer deux point zéro
Posté par Obsidian . En réponse au journal SNCF, plus belle la vie !. Évalué à 8.
M'enfin bon. Chacun son métier.
[^] # Re: Fermez les yeux, détendez-vous...
Posté par Obsidian . En réponse au journal SNCF, plus belle la vie !. Évalué à 5.
[^] # Re: la cnil
Posté par Obsidian . En réponse à la dépêche EDVIGE : un nouveau fichier de renseignements policiers. Évalué à 10.
Parce qu'elle risquerait de se retrouver dans le fichier, pardi ! :-)
[^] # Re: NdA : lien avec le logiciel libre
Posté par Obsidian . En réponse à la dépêche EDVIGE : un nouveau fichier de renseignements policiers. Évalué à 8.
Après il n'y aura plus qu'à ouvrir ewigefr.org :-)
# Mandriva ... sauvée ?
Posté par Obsidian . En réponse au journal Ce soir, dans capital .... Évalué à 9.
« - Comment faites-vous pour faire un PC moins cher ?
- Facile : processeur moins puissant, écran plus petit, pas de lecteur CD/DVD, disque dur moins large et Linux à la place de Windows. »
En plus, il n'ont pas parlé de Mandriva, mais ils n'ont pas parlé de Windows non plus, ni d'un O.S. en général.
Très bien. Ça fera des images toutes faites pour un prochain reportage.
[^] # Re: Oui mais..
Posté par Obsidian . En réponse au journal Vais-je résister à la tentation..... Évalué à 2.
Cela m'étonne que personne d'autre ne l'ait dit avant, mais.. es-tu sûr que l'administrateur/propriétaire de la machine soit bien le spammeur ?
« No sex causes bad eyes » : https://linuxfr.org/comments/962651.html#962651
[^] # Re: tu viens de te dénoncer : ne jamais faire justice sois meme
Posté par Obsidian . En réponse au journal Vais-je résister à la tentation..... Évalué à 6.
http://www.kitetoa.com/Pages/Textes/Les_Dossiers/Tati_versus(...)