J'utilise Ubuntu 14.04. J'ai un gros fichier journal:
-rw-r--r-- 1 Rails root 1792390124 Jan 10 14:54 /var/log/Unicorn/unicorn.log
Néanmoins, je dois l'ouvrir et y trouver des éléments. J'ai essayé vim, mais en cours d'exécution
vim /var/log/Unicorn/unicorn.log
ouvre simplement un écran vide et même lorsque j'utilise Ctrl+C, Rien ne se passe. Le terminal est bloqué. Sans mettre à niveau le matériel de ma machine (mais je suis ouvert à l’installation de logiciel), comment puis-je ouvrir le fichier et regarder autour de moi (je n’ai pas besoin de le modifier, je dois simplement en lire quelques lignes).
Lorsque vous traitez avec des fichiers volumineux, il est préférable de minimiser la quantité d'informations que vous allez traiter, et il existe des outils pour cela. Un outil mentionné est grep
pour rechercher les lignes spécifiques dont vous avez besoin. Les deux autres outils que je recommande d'utiliser sont tail
et head
qui peuvent afficher un nombre spécifique de lignes ou d'octets du haut du fichier (head
) ou de la fin (tail
). Ceci est utile si vous n'avez besoin que de lire ces parties spécifiques du fichier, mais rien entre les deux.
Une autre méthode consiste à utiliser la commande split
. Il peut décomposer un fichier en fonction du nombre d'octets ou de lignes. Par exemple,
$ mkdir SPLIT
$ cd SPLIT/
$ split -l 5 /etc/passwd
$ ls
xaa xab xac xad xae xaf xag xah xai xaj
Maintenant, mon /etc/password
est divisé en fichiers plus petits, de 5 lignes chacun, que vous pouvez ouvrir avec vim ou un autre éditeur de texte.
Utilisez la commande less
name__. less
utilise un moyen plus efficace de lire un fichier en mémoire. Il existe 2 commandes équivalentes: more
et most
(la dernière à installer). Ceux-ci ont mis la seule page en mémoire.
Mais votre MEILLEURE option de recherche consisterait à utiliser grep
name__. Exemple:
grep {searchstring} {file}
Et jetez un coup d'œil à logrotate
pour étendre ce journal à plusieurs fichiers.
Et split
peut diviser votre fichier actuel en parties égales, ce qui vous permet de regarder plus facilement ce journal.
Cela dépend de votre objectif.
Si vous voulez faire défiler le fichier de consignation entier, vous pouvez utiliser les commandes less
ou more
pour obtenir une vue page par page du fichier.
Sinon, si vous savez où se trouve le fichier que vous recherchez, vous pouvez utiliser les commandes head
ou tail
pour récupérer une section/un extrait du fichier. Voir man head
et man tail
pour plus d'informations sur la recherche de pièces exactes.
Si vous recherchez une chaîne/entrée spécifique, vous pouvez utiliser grep
pour rechercher dans le fichier votre chaîne. Vous pouvez utiliser cat file | grep something
ou grep something file
en fonction de ce que vous souhaitez faire.
Si vous souhaitez faire des choses plus avancées, vous pouvez également utiliser sed
ou awk
pour des opérations plus avancées, si besoin est.
Si vous savez exactement quelle ligne vous voulez, utilisez grep
name__. Mais si vous pêchez pour quelque chose dont vous n'êtes pas sûr, utilisez less
est préférable, car il vous montrera le contexte (ce qui est particulièrement utile pour les fichiers journaux).
Tapez la commande /
dans less
pour ouvrir le champ de recherche. Tapez ce que vous voulez puis appuyez sur Entrée. Ensuite, pour continuer à chercher le même mot, tapez n
pour avancer et N
pour revenir en arrière. Pour aller à la fin du type de fichier G
name__, puis N
ou ?
.