Header Hágale Pues
Portal Foro Temas de Hoy Registrarse Buscar




  Hagale Pues » Foros de conversación » Informática / Tecnología » Noticias Tecnológicas » 10 comandos para administradores web
»

10 comandos para administradores web

Un one-line command ( o comando de una sola línea ) es una secuencia de varios comandos encadenados entre sí, ...



Respuesta
Herramientas
Antiguo 05/10/10, 05:06:05   #1
Owner
 
Avatar de SantyGil
 
Fecha de Ingreso: dic 2008
Ubicación: Medellín
Edad: 23
Mensajes: 4.608
Temas: 1409
Has agradecido: 213
Has sido agradecido 789 veces en 361 mensajes
Poder de Credibilidad: 723
SantyGil tiene una reputación que sobrepasa la famaSantyGil tiene una reputación que sobrepasa la famaSantyGil tiene una reputación que sobrepasa la famaSantyGil tiene una reputación que sobrepasa la famaSantyGil tiene una reputación que sobrepasa la famaSantyGil tiene una reputación que sobrepasa la famaSantyGil tiene una reputación que sobrepasa la famaSantyGil tiene una reputación que sobrepasa la famaSantyGil tiene una reputación que sobrepasa la famaSantyGil tiene una reputación que sobrepasa la famaSantyGil tiene una reputación que sobrepasa la fama
Reputación: 34352
Enviar un mensaje por MSN a SantyGil
Predeterminado 10 comandos para administradores web

Un one-line command (o comando de una sola línea) es una secuencia de varios comandos encadenados entre sí, de forma que la salida de un comando, es la entrada del siguiente. Es muy común la construcción de comandos one-line en lenguajes y/o herramientas como Perl, AWK o entornos de sistemas operativos.

En este pequeño manual veremos 10 comandos one-line, especialmente indicado para administradores web que trabajan y manipulan registros de acceso y logs en servidores.


1. Los 35 recursos más pedidos

Con este one-line command conseguiremos que se nos muestren los 35 recursos más pedidos a nuestro servidor web, con la transferencia acumulada y el tamaño de cada recurso independientemente (entre paréntesis).
cat access_log | cut -d" " -f10,7 | sort -n | uniq -c | awk '{printf("%2.2fMB (%2.2fKB) %s\n", ((($3*$1)/1024)/1024), (($3)/1024), $2)}' | sort -n | tail -35 Es muy útil para optimizar nuestro sitio web con respecto a la transferencia, ya que podemos observar que ficheros son los más pedidos y actuar en consecuencia.

Ejemplo de resultado

28.56MB (91.98KB) /weblog/geek-nogeek-2.png
28.64MB (13.85KB) /ttf/sansation.ttf
29.24MB (3.71KB) /img/imgload.jpg
39.58MB (10.53KB) /img/social-susc.png
48.43MB (130.18KB) /weblog/ajedrez-ag-piezas.jpg

2. Los 50 agentes de usuario menos comunes


Un agente de usuario es la identificación del navegador (o aplicación) que se utiliza para acceder al recurso del servidor web. Se ordenarán por número de peticiones realizadas.
cat access_log | cut -d" " -f12- | egrep -v "MSIE|Gecko|Safari|Opera" | sort | uniq -c | sort -n | tail -50 En este ejemplo filtraremos los navegadores basados en el motor del Internet Explorer, Gecko, Safari y Opera.

Ejemplo de resultado

113 "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
120 "Mozilla/4.0 (PSP (PlayStation Portable); 2.00)"
126 "Mozilla/5.0 (PLAYSTATION 3; 1.00)"
194 "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
277 "msnbot/2.0b (+http://search.msn.com/msnbot.htm)"
504 "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
567 "Mediapartners-Google"
816 "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)"


3. 50 referers más activos


Con este comando y sustituyendo hagalepues.net por nuestro dominio (para excluirlo) veremos cuales son los referers (referidos, lugares de donde vienen nuestros lectores) más activos, que nos mandan más tráfico.
egrep -v "hagalepues.net" access_log | cut -d" " -f11 | cut -d"/" -f3 | sort | uniq -c | sort -n | tail -50 El resultado sería un listado de dominios según el tráfico que nos envían hacia nuestra web (en orden creciente).

Ejemplo de resultado

77
201 search.conduit.com
216
275 rho.bloglines.com
341
484
800
1494
2148


4. Las 15 IPs/Hosts que más peticiones realizan


Por norma general, si ordenamos el tráfico recibido por IP o direcciones de host, siempre encontraremos un determinado usuario / robot que consume más tráfico de lo normal.
Puede tratarse de un usuario que utilice mucho nuestra web o navegue mucho por ella, sin embargo, suelen aparecer muchos robots o aplicaciones automatizadas (spammers, robots extractores de emails, bots...) que se pueden detectar facilmente de esta forma.
cat access_log | cut -d" " -f1 | sort | uniq -c | sort -n | tail -15 Una pista interesante suele ser el hacer un nslookup a la IP en cuestión para examinar su dns inverso o comprobar si se puede acceder introduciendo la IP en el navegador web (generalmente son servidores mal configurados que aprovechan los spammers*).
Si quieres saber más, lee este artículo sobre bots de spam en blogs y como detenerlos o bloquearlos.

Ejemplo de resultado

541 128.242.240.212
660 msnbot-65-55-3-192.search.msn.com
742 crawl-66-249-68-99.googlebot.com
950 b3091344.crawl.yahoo.net
1503 69.63.189.16
50083 mail.micro-system-fail.com
53406 * En el ejemplo se puede ver como hay dos hosts con peticiones desproporcionadas comparadas con el resto. El dns inverso también es extraño, puesto que representa posibles servidores mal configurados (¡Ojo! Esto no tiene porque ser siempre así, puede tratarse de algún empleado de la hipotética empresa Power Balancing Corporation que decidió darse una vueltita por nuestra web...).

5. Examinar posibles problemas del servidor


Es posible mostrar las peticiones que han devuelto un 404 error (no encontrado), y así observar las que se repitan demasiado, que pueden implicar algún tipo de problema en nuestro sitio (enlace incorrecto, recurso borrado, etc...).
grep "HTTP/.... 404 " access_log | cut -d" " -f6-7 | sort | uniq -c | sort -n | tail -15 | tr -d \" Esto nos mostrará un listado con las peticiones más frecuentes con error 404 y si se trata de una petición GET o POST (recibir datos externos).

Ejemplo de resultado

3 GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=6415&STRMVER=4&CAPREQ=0
8 GET /img/tro-banner.png
8 POST /comments/
13 GET /img/logo.png
48 GET /apple-touch-icon-precomposed.png
48 GET /apple-touch-icon.png
128 GET /index.css Es posible, también, con el siguiente comando, obtener un listado de los códigos HTTP emitidos, para hacernos una idea global, y posteriormente, examinar con el one-line command anterior, modificando el 404 por el código a revisar.
cat access_log | cut -d" " -f9 | sort | uniq -c | sort -n | tail -50

6. Descubrir probables spammers de comentarios


Mucho cuidado con este punto. El código nos mostrará un listado de los IPs/Hosts que envian datos al servidor (formularios, comentarios, envío de correos, etc...). No tienen porque ser spammers o bots.
grep " \"POST /" access_log | cut -d" " -f1,7 | sort | uniq -c | sort -n | tail -50 Sin embargo, es muy sencillo localizar peticiones desproporcionadas (con respecto al resto), peticiones extrañas o hosts muy sospechosos (con dominios rusos o similares) para investigar un poco más.
Un buen sistema para evitar ataques automatizados y peticiones de spam o similares es mediante el uso de Mod Security.
Además, bloqueando mediante firewall se suele reducir el consumo de CPU y memoria RAM del servidor.

Ejemplo de resultado

1 oracle1.wrt-inc.com //xmlrpc.php
1 xi.delaware.net /articulos/10-trucos-para-blogs-conseguir-mas-visitas/contact.php
2 xi.delaware.net /contact.php
8 80.144.51.10 /comments.php
78 mail.power-balancing.com /administrator.php

7. Los 25 accesos SSH fallidos más insistentes


Cuando tenemos un servidor Linux, generalmente tenemos disponible un servidor SSH para abrir una terminal remota y trabajar sin necesidad de tener acceso físico al equipo.
Obviamente, a este servidor puede acceder cualquier persona, a parte de nosotros, y sus intentos de acceso son (por defecto de syslog) registrados en /var/log/secure.
zgrep "Failed password for " /var/log/secure* | sed "s/invalid user //" | tr -s " " | awk '{print $11" "$9}' | sort | uniq -c | sort -n | tail -25 Con este one-line command conseguirás un listado de las IPs/Hosts que más intentos han realizado para hacerse con una terminal en el servidor, y con los usuarios que lo han intentado.

Ejemplo de resultado

62 202.102.120.202 admin
66 85.132.34.250 oracle
67 200.17.236.254 ftpuser
224 216.205.103.46 emezeta
441 115.238.28.155 root
682 66.240.52.5 root
2000 86.120.31.18 root
2866 202.102.120.202 root Normalmente se trata de ataques automatizados (nombres genéricos: mysql, root, admin, oracle...), pero hay que tener especial cuidado con los accesos con nombres aparentemente inteligentes (emezeta no forma parte de un diccionario, se trata de un ataque personalizado).

8. ¿Cuántos suscriptores RSS tenemos?


La mayoría de suscriptores RSS cuando acceden a la página original del editor, dejan un rastro en su User Agent que indican los suscriptores a su feed rss en la actualidad.
egrep "subscriber" access_log | cut -d" " -f12- | sort | uniq | sort | tr -d \" Utilizando el one-line command anterior podremos obtener esta información. Si quieres más datos sobre esto, puedes echarle un vistazo a ¿Cuántos suscriptores RSS tiene nuestro blog?.

Ejemplo de resultado

Bloglines/3.1 ( 329 subscribers)
Feedfetcher-Google; (+ 1439 subscribers; feed-id=2165378610225046384)
Feedshow/2.0 ( 1 subscriber)
Netvibes ( 220 subscribers; feedID: 57337)
NewsGatorOnline/2.0 ( 51 subscribers)
PostRank/2.0 (postrank.com; 1 subscribers)

9. Palabras clave que buscan en Google

Construir un listado exacto de todas las palabras que se escriben en el buscador de Google para llegar a nuestro sitio web sería muy complicado, pero con este one-line command realizamos una aproximación de esta tarea.
cat access_log | cut -d" " -f11 | egrep -i "http://(www.)?google" | sed "s/q=/©/" | cut -d"©" -f2 | cut -d"&" -f1 | grep "\+" | sort | uniq -c | sort | tail -50 Siempre podemos variar este último tail -50 para que en lugar de mostrarnos las más frecuentes, nos muestre las que sólo se buscan una vez (útil para hacer zeitgeists) con head -50, o verlas todas debidamente paginadas con less o more.

Ejemplo de resultado

7 fondos+para+twitter
9 punto+ciego
13 aplicaciones+android
13 trucos+tuenti
49 memoria+ram
82 musica+de+los+80

10. Los 50 smartphones más usados en tu web


Con este sencillo one-line command accederemos a un listado donde se nos mostrará, como siempre, en orden creciente, un listado de los smartphones más comunes con los que visitan nuestra página.
cat access_log | cut -d" " -f12- | egrep "MIDP|iPhone|Android" | sort | uniq -c | sort -n | tail -50 | tr -d \" Lo que nos mostraría un listado similar al siguiente:
Ejemplo de resultado

136 Opera/9.80 (Android; Opera Mini/5.1.21126/20.2479; U; es) Presto/2.5.25
152 Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5800d-1/50.0.005[...]
158 Mozilla/5.0 (Linux; U; Android 1.6; es-es; Orange_Boston Build/DONUT)[...]
158 Mozilla/5.0 (Linux; U; Android 2.1-update1; es-es; HTC Legend 1.23.161.1[...]
175 BlackBerry9700/5.0.0.593 Profile/MIDP-2.1 Configuration/CLDC-1.1[...]
218 Mozilla/5.0 (Linux; U; Android 1.5; en-us; eee_701 Build/CUPCAKE)[...]
290 Mozilla/5.0 (Linux; U; Android 2.2; es-es; Nexus One Build/FRF91)[...]
291 Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; es-es)[...]
435 Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; es-es)[...]

Consideraciones finales


Varias consideraciones finales a tener en cuenta sobre este artículo:
  • El mantra sort | uniq -c | sort -n se utiliza para ordenar un listado de resultados, de modo que queden adyacentes los que sean iguales. De este listado ordenado, suprimimos las lineas repetidas, contandolas (y añadiendo ese número al principio), para posteriormente organizarlas (en orden creciente de números naturales).
  • La mayoría de los comandos que se relatan a continuación son para la estructura de los logs y registros de servidores como Apache y Syslog (con su patrón de registro por defecto). Por lo que si tienes otro, o has cambiado el tuyo, debes tenerlo en cuenta.
  • La mayoría de resultados no ofrecen una estadística real, puesto que dependen mucho de la estructura de archivos de tu página web. Sirve sólo para hacerse una idea e identificar datos concretos.
  • En cada punto, estamos haciendo un volcado del registro (access_log, error_log, secure, messages...) completo. Esto dependerá de la configuración que tengas establecida en tu servidor. Normalmente se usan herramientas como logrotate para rotar y que el registro no se haga demasiado grande, aunque hay animales que tienen archivos gigantescos.



__________________
Santiago Aguirre -G
Admin Comunidad HP
www.hagalepues.net
SantyGil esta offline   Responder Con Cita
Antiguo 05/10/10, 10:32:04   #2
Usuario Novato
 
Avatar de El Kaliche
 
Fecha de Ingreso: dic 2008
Ubicación: Medellín paradise city....
Edad: 23
Mensajes: 92
Temas: 16
Has agradecido: 15
Has sido agradecido 14 veces en 11 mensajes
Poder de Credibilidad: 32
El Kaliche es algo digno de contemplarEl Kaliche es algo digno de contemplarEl Kaliche es algo digno de contemplarEl Kaliche es algo digno de contemplarEl Kaliche es algo digno de contemplarEl Kaliche es algo digno de contemplar
Reputación: 666
Predeterminado Respuesta: 10 comandos para administradores web

hey q ximba, el primero está muy útil

__________________


De relax como el gato volador.


Si necesita un sitio web se le hace la cotización.
mas info, cel: 313 700 5248
gracias
El Kaliche esta offline   Responder Con Cita
Respuesta

Etiquetas
10, administradores, comandos, para, web


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas
Desplegado



El uso horario es GMT -5. La hora actual es: 09:04:04
Powered by vBulletin™ Version 3.8.6
Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.
Traducción por vBHispano
vBulletin Skin by CompletevB
HagalePues.Net 2008 - 2013
SEO by vBSEO ©2011, Crawlability, Inc.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213