miércoles, 27 de junio de 2007

Modificar inicio sesion en consola

Si queremos editar los inicios de sesion con un mensaje y demás cosas, tipo modificacion del archivo autoexec.bat de windows lo editaremos en /etc/profile (comun a todos los usuarios)

mensaje de inicio de sesion:

/etc/profile

martes, 26 de junio de 2007

Instalacion deletemail en suse

como no se encuentra por defecto en el pac de suse, lo deberemos de buscar de internet, recompilarlo e instalarlo en nuestro suse.

asi pues primero buscamos gracia a san google el deletemail
...

Como debremos de compilar... recuerdo que hay que tener instalado make install (lo instalamos facilmente a traves de yast2)

para instalar paquetes en formato tar.gz debes primero desempaquetarlos con la siguiete instruccion


tar xvfz paquete.tar.gz


(nota de Jano, ¬¬, ejem ¿como quieres instalar algo desde las fuentes sin compilador?)

hemm... desto, necesitamos como minimo el gcc con yast2 y despues hacemos lo de los pasos sisguientes.

el te creara un directorio con el nombre del paquete ahora lo que tiene que hacer es ingresar al directorio creado
cd directorio_creado_paquete
todos los paquetes traen un instructivo de instalacion por lo general llama INSTALL O README estos te daran una gia,
ahora ejecuta ./configure
despues make .- - - lo compila
make install - - - - instala el programa

Deletemail se puede descargar de aqui
http://www.jhweiss.de/software/deletemail.html

RPM, compilar a partir de un tar.gz

Algunos tar.gz vienen incluyendo la información para convertirse en rpm. No son todos! Sólo los de los autores que se toman en trabajo de incluir la información de spec.

Por ejemplo, el spamassassin y el rkhunter.

Supongamos que queremos instalar el ultimo spamassassin y que sólo tenemos su tar.gz, lo bajamos de aqui: http://spamassassin.apache.org

Ahi bajamos el tar.gz de la ultima versión y ejecutamos:

rpmbuild -ta Mail-Spamassassin-3.1.8.tar.gz


verifica que la versión se corresponda con la que hayas bajado, al momento de éste howto es la 3.1.8

El sistema se demorará un rato compilando y obtendrás el rpm.

Lo mismo puedes intentar con cuando tar.gz encuentres. Te garantizo que la mayoría no compilará pues no contienen el .spec.. pero algunos sí.

Si no lo puedes compilar desde tar.gz con rpm, te sugiero crees un rpm basándote en algún .spec que por ahi encuentres.

jueves, 21 de junio de 2007

Apuntes de un minicurso

Estos son mis apuntes:

Ctrl + Alt + Fn F1, F2, F3... cambia de consola de Linux

comando "top" como el administrador de tareas.
-La columna PID indica la prioridad del proceso y sulue ser desde -20 a 20, es decir -20 = Prioridad Maxima, 0 Normal y 20 Minima prioridad.

Ctrl + alt + Blackspace (la de borrar, no supr) reincia únicamente el entorno gráfico.

para saber la version instalada de linux: "uname -a"

Comando parecido al "type archivo.txt" sería "cat archivo.txt"

Para saber los últimos 1000 comandos usados por un usuario escribiremos el comando "history", si por el contrario queremos buscar un comando llamado ls, escribiremos "histrory |grep ls" con grep decimos que busque en el contenido.

La carpeta "/home" seria la equivalente al document and settings de windows

"k3b" seria la utilidad de grabación parecida al Nero
"xmms" seria la utilidad equivalente al winamp

"opartool" utilidad gáfica para poder ver las particiones del disco duro.

Particiones en linux:
1 swat (tamaño minimo = memoria del PC x 2) ej. 256mb x 2 = 512MB de swat
/boot /tamaño recomendado 128MB (pero esto depende de la distribución)
El resto del sistema ext3

Otras distribuciones:
wifislax - distribución especifica para crackear redes wifi o bluetooth.
riplinux - Analisis forense del PC (vamos para saber que narices a pasado)

lunes, 18 de junio de 2007

Más sobre mail / mailx

Si lo que queremos es borrar a saco paco todos los mails de todos los usuarios, (hablamos siempre de mail / mailx que quede bien claro) es tan sencillo como hacer un del *.* del dos.

Primero para saber en que directorio se encuentra, es lógico ya que no podemos hacer un del *.* asi por las buenas..

si nos situamos en el directorio /var/mail/ y realizamos un dir o un ls podremos ver una lista con todos los usuarios que tienen correo.

pues bien aque escribiremos como root o con un usuario que tenga permisos para ello "rv *" y con esto ya hemos borrado todos los correos de todos los usuarios.

otra cosa ya mucho más aburrida seria utilizar el comando mailx -u nombreusuario y una vez dentro escribir "d *" para que borrara todos los mensajes, esta forma "rm *" es muy practica si no queremos entretenernos a borrar mails o simplemente no queremos saber saber nada de lo sucedido (lo que seule pasar a veces con el visor de suecesos de windows)

Tema relacionado

miércoles, 13 de junio de 2007

Tareas, Procesos y Administrador de tareas

Tareas y procesos



En este punto tendremos que empezar a determinar que es un proceso y una tarea. Anteriormente dijimos que un programa se transformaba en proceso en el momento en que este se ejecutaba y estaba en memoria. Además del nombre que el proceso recibe, que es el nombre del programa que esta corriendo, recibe también un número identificativo llamado PID (process ID, o ID de proceso). Si ejecutamos el comando ps veremos los procesos que están ejecutando en este momento con nuestro UID, es decir que estamos corriendo nosotros mismos


[shrek@pantano:~]$ ps
PID TTY STAT TIME COMMAND
172 p0 S 0:00 -bash
184 p0 R 0:00 ps
[shrek@pantano:~]$


Se puede ver que están corriendo dos procesos, el bash (que es el intérprete de comandos) y el proceso ps que es el que estamos usando en este momento en una terminal determinada. Como se puede ver el primer número es el PID que el sistema le asigna al proceso y en la columna COMMAND se puede ver el nombre del proceso. De ninguna manera estos son todos los procesos que se están ejecutando en el sistema. Si se quisieran ver todos los procesos tendrían que poner ps -ax con lo que obtendrían un listado con todos los procesos que se estén ejecutando. Como se puede apreciar, están ambos procesos ejecutándose al mismo tiempo, pero solo uno de ellos esta activo, el comando ps. Nos podemos dar cuenta de esto ya que en la columna STAT aparece en la línea del bash la letra S de SLEEP, ya que en ese momento el intérprete de comandos esta esperando a que el proceso ps termine. Y es aquí donde esta la diferencia entre proceso y tarea. Aunque ambos son procesos, una tarea se refiere al proceso que esta corriendo. Este calificativo solo lo da el shell del sistema cuando se utilizan los controles de tareas dado que no todos los intérpretes de comandos soportan este tipo de control.

Primer y segundo plano



Cualquier proceso puede estar en primer o segundo plano. Lo único a tener en cuenta es que solo un proceso estará en primer plano al mismo tiempo y es con el que estemos trabajando e interactuando en ese momento. Un proceso que este en segundo plano no recibirá ninguna señal de parte nuestra, es decir que no nos podemos comunicar con él a través, por ejemplo, del teclado. La utilidad de enviar un programa a segundo plano esta dada por el hecho de que existen tareas que no requieren de nuestro control para que se ejecuten. Por ejemplo, bajar algún archivo de Internet, compilar el kernel u otro programa. Estas son tareas que pueden ser lanzadas tranquilamente en segundo plano. Para lanzar un proceso en segundo plano, tendremos que poner a continuación del comando el símbolo &. Para ejemplificar esto usaremos el comando find y dejaremos que busque todos los archivos que existen en el disco


[shrek@pantano:~]$ find / -name "*"


Esto nos mostraría una lista bastante larga de archivos por pantalla y nos quedaríamos sin el control del intérprete de comandos mientras esta ejecutándose. Podríamos usar el dispositivo null, que si recuerdan era como un agujero negro donde todo lo que se enviaba a él desaparecía, para redirigir la salida y que no saliera por pantalla


[shrek@pantano~]$ find / -name "*" > /dev/null


Igualmente así no contaríamos con la atención de nuestro interprete de comandos hasta que terminara el trabajo el comando find. La forma de tener la atención del shell inmediatamente después de lanzar el proceso find es enviándolo en segundo plano


[shrek@pantano:~]$ find / -name "*" > /dev/null &
[1] 192
[shrek@pantano:~]$


Como se aprecia, regresó de inmediato al shell, pero antes envió un mensaje a la terminal. El [1] representa a un número de trabajo que el shell asigna a cada uno de los procesos que pasa a segundo plano. Inmediatamente después vemos el número de PID del proceso. Podremos identificar al proceso por cualquiera de los dos números mientras se encuentre en segundo plano. Para ver cuantos trabajos están ejecutándose en este momento podemos usar el comando jobs.


[shrek@pantano:~]$ jobs
[1]+ Running find / -name "*" >/dev/null &
[shrek@pantano:~]$


Podremos eliminar un proceso que se esta ejecutando con la ayuda del comando kill seguido bien sea del número de trabajo precedido de un signo % o del número de PID. De esta forma estamos matando al proceso pero puede darse el caso de que este tarde en desaparecer dado que tiene que limpiar el entorno, por esto muchas veces parecerá que no nos a hecho caso. En realidad el proceso esta haciendo una limpieza del sistema evitando así el mal funcionamiento del mismo y/o una inconsistencia en los datos con que trabajaba. Como ejemplo usaremos otro comando muy típico, el comando yes. Este comando enviará a la salida estándar continuamente la letra y. Sirve este comando para que en caso de que se requiera contestar afirmativamente a las peticiones de un programa pudiéremos mediante una redirección contestarle con un y a cada pregunta. Si lo ejecutáramos sin redirigir la salida a /dev/null, nos llenaría la pantalla con una columna infinita de y. Por esto lo enviaremos a segundo plano redirigiendo la salida y luego lo mataremos con el comando kill.


[shrek@pantano:~]$ yes > /dev/null &
[1] 201
[shrek@pantano:~]$ kill %1
[shrek@pantano:~]$ jobs
[1]+ Terminated yes > /dev/null &
[shrek@pantano:~]$


Como podrán ver, en el momento en que se mando el comando kill, no hubo ningún mensaje. Solo después de ejecutar el comando jobs se nos informo que el trabajo número 1 había finalizado (TERMINATED). Podemos también hacer lo mismo empleando el número de PID con lo que obtendremos idénticos resultados.


[shrek@pantano:~]$ kill 201


Como parar y relanzar tareas



Los procesos pueden ser suspendidos temporalmente hasta que nosotros dispongamos, para así relanzarlos y que continúen ejecutando donde se habían quedado. Esto es de gran utilidad. Supongamos que se esta trabajando con el editor de texto Vi y no queremos trabajar en otra consola, solo tenemos que enviar al programa Vi a dormir un rato y tendremos el intérprete de comandos a nuestra disposición. En la mayoría de los programas, se envía una señal de terminación utilizando las teclas Ctrl-C, para poder enviar un trabajo a dormir utilizaremos otra combinación de teclas Ctrl-Z. Hay que tener en cuenta que no es lo mismo un trabajo en segundo plano que uno que es enviado a dormir. Un trabajo en segundo plano sigue ejecutándose, en cambio uno que se envía a dormir queda esperando en el lugar donde estaba hasta que sea despertado. Para ejemplificar esto, enviaremos al comando yes a segundo plano y luego lo pondremos a dormir.


[shrek@pantano:~]$ yes >/dev/null &
[shrek@pantano:~]$ yes >/dev/null


Ahora presionamos Ctrl-Z


[shrek@pantano:~]$ yes >/dev/null &
[shrek@pantano:~]$ yes >/dev/null
[2]+ Stopped yes >/dev/null
[shrek@pantano:~]$ jobs
[1]- Running yes >/dev/null &
[2]+ Stopped yes >/dev/null


Como pueden ver, el proceso que se envió a segundo plano todavía se esta ejecutando (Running), en cambio la que se mando dormir estaparada esperando que la relancemos (Stopped). Para ponerlo en primerplano o despertarlo a cualquiera de los dos podemos usar el signo "%"seguido del número del proceso o bien el comando fg.


[shrek@pantano:~]$ %1
yes >/dev/null &


Ahora presionamos Ctrl-Z


[shrek@pantano:~]$ fg %1
yes >/dev/null


Podremos enviar también un comando que esta durmiendo a que ejecute en segundo plano a través del comando bg


[shrek@pantano:~]$ jobs
[1]- Stopped yes >/dev/null
[shrek@pantano:~]$ bg %1
[1]+ yes >/dev/null &
[shrek@pantano:~]$ jobs
[1]+ Running yes >/dev/null &


Cabe decir que tanto fg como bg son comandos internos del intérprete de comando. Esto es así porque es el mismo intérprete quien hace el control de tareas. Puede darse el caso de que existan intérpretes de comandos que no tengan soporte para control de tareas.

Programas de seguimiento (ps y top)



Los sistemas GNU/Linux cuentan varios programas para efectuar el seguimiento de los procesos que se están ejecutando en el sistema. Entre los mas usados en la interfase de texto están los programas ps y top.

ps



Sin ninguna opción dará la lista de procesos que están corriendo desde la terminal donde se ejecuto el ps


[shrek@pantano:~]$ ps
PID TTY TIME CMD
9648 tty2 00:00:02 bash
9659 tty2 00:00:00 ps
[shrek@pantano:~]$


Las columnas que nos quedan por explicar son TTY y TIME. TTY identifica la consola donde se esta ejecutando el proceso. En este caso es una terminal local. La columna TIME nos indica la cantidad de tiempo total que el proceso se ha estado ejecutando. Como se puede ver el tiempo es de 2 segundos. Aunque este horas el sistema encendido, el bash pasa su mayor parte del tiempo esperando que se le envie algún comando para ejecutar, mientras tanto esta esperando dormido. Puede verse en la columna STAT en que estado se encuentra el programa. Por ejemplo, que vemos que el bash en el momento de ejecutarse el comando ps esta dormido (S) y que el proceso ps esta activo (R). Si añadimos la opción l tendremos un listado largo del comando ps. En algunas versiones se usa la opción -l


[shrek@pantano:~]$ ps l
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 100 9648 1 9 0 4368 1400 11b1d0 S tty2 0:01 -bash
4 100 9660 9648 17 0 2676 732 - R tty2 0:00 ps l


Dentro de esta información esta la columna del UID que identifica el dueño del proceso. El PID del proceso y también el PPID que es el PID del proceso padre. Podemos apreciar que el padre del comando ps l es el -bash. NI viene de nice y es un nivel que se otorga a un proceso para requerir cierto privilegio. En este caso tiene uno muy bajo por ende un proceso que tenga un valor mayor tendrá más tiempo de procesador para trabajar. SIZE es el tamaño que tiene el proceso. RSS es la tamaño del proceso que se encuentra residente en la memoria. WCHAN es el nombre de la función del kernel donde el proceso esta durmiendo. Esta expresado en forma hexadecimal.

Otra forma en la que podemos ver el padre de cada proceso es a través del modificador f.


[shrek@pantano:~]$ ps f
PID TTY STAT TIME COMMAND
9648 tty2 S 0:02 -bash
9660 tty2 R 0:00 \_ps f
[shrek@pantano~]$


Aquí se puede ver que el comando ps f depende del -bash.

top



Ahora bien, el comando ps nos muestra una radiografía de los procesos en el momento, pero no nos muestra los cambios que se van teniendo. Para esto contamos con el comando top. El mismo muestra en tiempo real la situación de los procesos que se están ejecutando en el sistema, ordenados por defecto según el porcentaje la CPU que estén usando. Al ejecutarlo se podrá ver otra información adicional, como la cantidad de usuarios que están en el sistema, cuantos procesos están corriendo y de estos cuantos estas activos, cuantos durmiendo, cuantos en proceso de terminar (ZOMBIE) y cuantos finalizados. Además se podrá ver la cantidad e memoria física total, la cantidad usada y la cantidad libre; así como también se podrá obtener la misma información de la memoria swap.

Lo más importante es que esta información de ira actualizando automáticamente cada tanto tiempo, por defecto 5 segundos, y que podremos ir alterando lo que va mostrando. Por ejemplo podemos hacer que ordene los procesos de acuerdo a la cantidad de memoria que esta usando con solo presionar la tecla M. U ordenarlos de acuerdo al tiempo que llevan corriendo. Otra utilidad es que podríamos matar algún proceso con solo presionar la tecla k y luego darle el número de PID.

El listado que nos mostrará contendrá el número de PID, el usuario que lo está ejecutando, la prioridad del proceso (PRI), el valor nice (NI), el tamaño del proceso (SIZE), el tamaño total del proceso junto con los datos que maneja (RSS), el tamaño usado por el proceso en la memoria (SHARE), el estado del proceso(STAT), el tamaño de las librerías del proceso (LIB), el porcentaje de CPU ( %CPU) y de memoria (%MEM) así como también el tiempo de ejecución (TIME) y el nombre del proceso (COMMAND).

Algunos comandos

comandos pasa saber los ID de los procesos:

ps aux

kill -9 + [nºID del proceso] mata el proceso actual. Ejemplo: kill -9 7563

martes, 12 de junio de 2007

¿Cómo puedo leer y contestar correo con mail/mailx?

¿Cómo puedo leer y contestar correo con mail/mailx?



El correo electrónico en Linux no puede considerarse como un extra al sistema operativo, sino que forma parte del mismo pues es una característica casi inherente a todo Linux. Esto quiere decir que aunque no hayamos instalado ningún cliente de correo como Netscape o Pine, probablemente dispondremos en el sistema de herramientas ya preparadas para ello.

Dentro de casi cualquier sistema Linux disponemos de un programa básico de email en consola (modo texto) llamado Mailx que nos permitirá el envio, lectura y contestación de mensajes de correo electrónico. En resumen, posibilita el envío de texto y datos dentro de una estructura coherente llamada mensaje, con su cabecera (campos: FROM (persona que envía el mensaje), TO (persona destinataria del mismo), SUBJECT (tema del que trata el mensaje) y CC o carbon copy (lista de personas que recibirán una copia del mismo).) y su BODY (cuerpo del mensaje), pudiendo incluir además ficheros añadidos que vienen incluidos dentro del paquete del mensaje (attach).

Para explicar el uso de mailx se va a usar un sencillo ejemplo en un máquina con un sólo usuario: sromero, además del obligatoriamente existente root (puede obternerse la lista de usuarios presentes en el sistema y en qué terminal están trabajando simplemente ejecutando la orden who). Suponga os que somos el usuario sromero y queremos enviarle un mensaje a root para testear las capacidades de envio de email. La manera más sencilla de enviar un mensaje a un usuario de la red es ejecutar mail :


[sromero@localhost info]$ mail root
Subject: Prueba de MailX.
Esto es el cuerpo del mensaje. Es una prueba de mailx.
Un mensaje se acaba con un punto (.) al principio de línea.
.
Cc: (intro)


Al ejecutar mail root se nos ha preguntado el tema (subject), el cuerpo del mensaje (acabado en punto (.)), y a quién se le deseaba enviar copias del mismo (Cc), cosa que hubiera sido bastante útil si nuestro mensaje fuera una invitación a un grupo de amigos o una información para un grupo concreto de personas. Tras escribir esto, el mensaje escrito se graba como un fichero de texto (con el mismo nombre que el destinatario del mensaje, y al que se añadirán más mensajes conforme se le vayan enviando a dicho destinatario) en el directorio /var/spool/mail, a la espera de que el usuario destino los lea y vayan siendo eliminados del mismo.

Si root está conectado o entra más tarde en cualquier terminal del sistema, recibirá un mensaje de aviso indicando que el sistema ha detectado la llegada de correo para el usuario:


You have mail.


Para realizar la lectura del correo electrónico, simplemente se invoca al programa mail, obteniendo una lista del correo pendiente y esperando el programa a que el usuario lo lea, responda, borre o almacene para más tarde:

[root@localhost /root]# mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/root": 3 messages 3 new
>N 1 sromero Thu Jul 30 17:04 17/55 "Prueba de MailX."
N 2 sromero Thu Jul 30 17:15 17/50 "Pregunta sobre adm"
N 3 sromero Thu Jul 30 17:16 15/44 "Felices vacaciones!"
& _



Como puede verse, mail nos muestra los mensajes pendientes (en este caso 3) por responder, con su usuario de origen (sromero), la fecha y el tema, con el cursor virtual (>) situado sobre el primero (es decir, indicando sobre cual actuará una orden de lectura, respuesta o borrado), y con un promtp (el carácter &) a la espera de recepción de órdenes sobre qué hacer con dicho correo.

Estas órdenes son:


'número' -> Listar el mensaje .
't' -> lista el mensaje actual (el apuntado por >)
'n' -> Pasar al siguiente mensaje y visualizarlo.
'd' -> Borrar mensaje.
'e' -> Editar mensaje
'r' -> Responder mensaje.
'q' -> Salir de mailx.



A la mayoría de estas opciones se les puede pasar un nº de mensaje (desde 1 hasta n) para indicar sobre qué mensaje realizar la acción (ejemplo 'd 3' o 'delete 3'). Otras opciones, obtenidas mediante la ayuda de mailx, son:

& ?
Mail Commands
t listar mensaje
n ir al mensaje especificado y listarlo.
e editar mensaje
f ver cabeceras del mensaje
d borrar mensaje
s añadir mensajes a un fichero
u recuperar mensajes borrados
R Responder a los remitentes del mensaje
r Responder al remitente y a todos los destinatarios.
pre hacer ir los mensajes de nuevo a /usr/spool/mail
m enviar mensaje a los usuarios especificados.
q salir grabando mensajes en mbox
h mostrar cabeceras activas.
! permite ejecutar una shell o comandos de shell


En el caso de no disponer de correo en ese momento, mail nos avisa con un:

[root@localhost root]# mail
No mail for root



Otro fichero asociado es el fichero .signature de nuestro directorio home, utilizado como fichero de firmas y cuyo contenido es incluido al
final de los emails escritos y respondidos por nosotros, pudiendo editarse y rellenarse con cualquier editor estándar de Linux para
incluir nuestra firma personal. Este fichero es utilizado por la mayoría de gestores de correo de Linux como fichero de firmas por
defecto, tal y como hace Mail, Pine, Netscape, Kmail, etc.

Algunos ejemplos:
Para borrar todos los mensajes desde un Id hasta otra...

borrar mensajes del 22 al 30 --> "d 22-30"

Imprimir desde linea de comandos

Tal y como vemos en esta foto, dentro de yast2 configuraremos la impresora en red de la sigueinte forma:

Nombre para la impresion:
Este será el nombre de la cola de impresion o nombre del puerto como queramos llamarle.

Descripción de impresora:
Esto es básicamente para saber de que impresora se trata.


lpr -P HP4500ADMIN [nombrearchivo a imprimir]


en nuestro ejemplo enviamos a imprimir un archivo de texto a la impresora hp de administracion por ejemplo.




Imprimir bajo Linux




Esta sección comenta cómo imprimir ficheros, examinar la cola de impresión,
eliminar trabajos de la cola, formatear ficheros antes de imprimirlos, y
configurar tu entorno de impresión.




Histórico




El sistema de impresión de Linux (el sistema lp) es una adaptación del código
escrito por los Regents de la Universidad de California para la versión

Berkeley Software Distribution (BSD) del sistema operativo UNIX.




Lo básico de imprimir




La forma más simple (con mucho) de imprimir en el sistema operativo Linux es
enviar el fichero a ser impreso directamente al dispositivo de impresión. Una
manera de hacer esto es usar el comando cat. Como usuario root, uno puede hacer
lo siguiente:






# cat tesis.txt > /dev/lp



En este caso, /dev/lp es un enlace simbólico al verdadero dispositivo
de impresión (una matricial, láser, tipográfica o plotter). Mira la página del
man ln(1) para más información acerca de enlaces simbólicos.



Para el propósito de la seguridad, sólo el usuario root y los usuarios de su
mismo grupo como el demonio de impresión son capaces de escribir directamente
a la impresora. Es por esto por lo que se tienen que usar comandos como lpr, lprm y lpq para acceder a la impresora.


Por esto, los usuarios tienen que usar lpr para imprimir un fichero. El
comando lpr es responsable de preocuparse por el trabajo inicial para
imprimir un fichero, pasando entonces el control a otro programa, lpd, el

demonio de las impresoras de líneas.


Este demonio le dice entonces a la impresora cómo imprimir el fichero.


Cuando lpr es ejecutado, primero copia el fichero a un cierto directorio
(el directorio de spool) donde el fichero permanece hasta que lpd lo
imprime. Una vez se le dice a lpd que hay un fichero para imprimir, creará

una copia de sí mismo (lo que los programadores llaman un 'fork'). Esta
copia imprimirá nuestro fichero mientras la copia original queda esperando otras
peticiones. Esto permite que hayan múltiples trabajos a la vez en una cola.


Las sintaxis de lpr(1) es bastante familiar,






$ lpr [ opciones ] [ nombre_fichero ... ]



Si no se especifica un nombre de fichero, lpr asume que la entrada
será efectuada por la entrada estándar (normalmente el teclado o la salida de
otro programa). Esto permite que el usuario redirija la salida de un programa
al dispositivo de impresión. Por ejemplo:







$ cat tesis.txt | lpr



o algo más potente, como





$ pr -l60 tesis.txt | lpr



El comando lpr acepta varios argumentos en la línea de comandos que
permiten al usuario controlar cómo trabaja. Algunos de los argumentos más
ampliamente usados son: -Pprinter especifica la impresora a usar, -h

suprime la impresión de la página, burst, -s crea un enlace simbólico en
lugar de copiar el fichero completo al directorio de spooling (útil para
ficheros grandes), y -#num especifica el número de copias a imprimir.
Un ejemplo de interacción con lpr podría ser algo como






$ lpr -#2 -sP dj tesis.txt



Este comando crearía un enlace simbólico al fichero tesis.txt en el
directorio de spool de la impresora llamada dj, donde debería ser
procesado por lpd. Además debería imprimir una segunda copia de tesis.txt.



Para ver un listado de todas las opciones que reconoce lpr, ver la página
del man lpr(1).




Viendo la cola de impresión




Algunas veces es útil saber qué trabajos están actualmente en una cola de
impresión particular. Esta es la única tarea del comando lpq.



Para ver qué hay en la cola de la impresora por defecto (definida por /etc/printcap), usa





$ lpq
lp is ready and printing
Rank Owner Job Files Total Size
active mwf 31 tesis.txt 682048 bytes





Cancelando un trabajo de impresión




Otra útil característica para cualquier sistema de impresión es la capacidad de
cancelar un trabajo que ha sido 'encolado' anteriormente. Para hacer esto,
usa lprm.





$ lprm -




El comando anterior cancela todos los trabajos de impresión que son propiedad
del usuario que envió el comando. Se puede cancelar un trabajo de forma
individual obteniendo primero el número del trabajo usando lpq, dando
entonces el número a lprm. Por ejemplo





$ lprm 31




cancelaría el trabajo 31 (tesis.txt) en la impresora por defecto.

Comandos Linux Vs DOS



DOS Linux

CD nombredir\ cd nombredir/
COPY fich1 fich2 cp fich1 fich2
DEL fichero rm fichero
DELTREE directorio rm -R directorio/
DIR ls
EDIT fichero vi fichero
emacs fichero
joe fichero
FORMAT fdformat
mount, umount
HELP comando man comando
MD directorio mkdir directorio/
MOVE fich1 fich2 mv fich1 fich2
NUL /dev/null
PRINT fichero lpr fichero
PRN /dev/lp0,
/dev/lp1
RD directorio rmdir directorio/
REN fich1 fich2 mv fich1 fich2
RESTORE tar -Mxpvf device
TYPE fichero less fichero
Cambiar fecha/hora

El fichero crontab o Programador de tareas


Cada uno de los ficheros crontab de configuración
están formados por asignaciones de valores a
variables de entorno y una línea por actividad que
queramos programar su ejecución. Las líneas
en blanco, los espacios iniciales y los tabuladores se
ignoran.




Los comentarios en este fichero son líneas completas
cuyo primer carácter que no sea un espacio es un
carácter #.



Las línea de programación de tareas siguen un
formato estándar formada por cinco campos que
indican un instante de ejecución y la ruta del
fichero que hay que ejecutar.




Los campos que describen el instante de ejecución
son por orden:



minuto 0-59



hora 0-23




día del mes 0-31



mes 0-12 (o sunombre con las tres primeras letras en
inglés)



dia semana 0-7 (0 or 7 indica domingo, o su nombre con las
tres primeras letras en inglés)




Un campo puede contener:



Un un asterisco (*) para indicar todos los posibles
valores.



Un valor fijo para indicar un minuto, hora, día o
mes.



Un rango de valores, dos números separados por
guiones. Un rango puede terminar en /numero para indicar el
incremento.




Una lista de valores separados por comas.



Un valor */numero para indicar todos los valores con
incremento de "número".



Ejemplos




Vemos diversas formas de configurar la ejecución de
la orden /usr/bin/fetchmail:



Ejecutarlo a las 12 de la noche cada día









"computeroutput">0 0 * * * /usr/bin/fetchmail



Ejecutarlo a las 12 :15 de la noche cada día









"computeroutput">15 0 * * * /usr/bin/fetchmail




Ejecutarlo 15 después de cada hora exacta, a las y
cuarto









"computeroutput">15 * * * * /usr/bin/fetchmail



Ejecutarlo el día 1 del mes a las 6:30









"computeroutput">30 6 1 * * /usr/bin/fetchmail



Ejecutarlo cada dos día a las 6:30









"computeroutput">30 6 */2 * * /usr/bin/fetchmail




Ejecutarlo los días 1,3,7,12,15 y 20 del mes a las
6:30









"computeroutput">30 6 1,3,7,12,15,20 * * /usr/bin/fetchmail



Ejecutarlo el día 1 de julio a las 6:30









"computeroutput">30 6 1 7 * /usr/bin/fetchmail



Ejecutarlo los lunes cada 10 minutos









"computeroutput">*/10 * * * 1 /usr/bin/fetchmail




Ejecutarlo de lunes a viernes a las hora en punto









"computeroutput">0 * * * 1-5 /usr/bin/fetchmail



Crontab predeterminados



Los sistemas, para facilitar la programación de
tareas de administración, disponen de un crontab
estándar que permite ejecutar tareas cada hora, cada
día, cada semana o cada mes; se crea un directorio
para cada una de estas tareas y todos los ficheros
ejecutables que pogamos allí, normalmente guiones de
shell, se ejecutarán automáticamente. Los
directorios en cuestión son, /etc/cron.hourly,
/etc/cron.dail, /etc/cron.weekly y /etc/cron.monthly.




El fichero /etc/crontab que ejecuta los contenidos de estos
directorios quedaría como:








SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly



Comandos más habituales de vi

Pongo aqui un breve resumen de los comandos más utilizados en el editor de texto predeterminado en linux (algo parecido como el edit del ms-dos), este se llama vi e incluso existe una versión mejorada llamada vim pero yo recomiendo nano (que es mucho más intuitivo de utilizar

Comandodescripción
iinsertar antes del cursor
aañadir detrás del cursor
oañadir una línea en blanco
xborrar un carácter
jborrar el final de línea (une dos líneas)
ddborra la línea completa
udeshacer la última edición
:qsalir
:q!salir sin guardar
:wguardar
:wqguardar y salir
:set numuestra números de línea
:set nonuoculta números de línea
:n copy mcopia la línea n detrás de la línea m
:n1, n2 copy mcopia desde la línea n1 hasta la línea n2 detrás de la línea m
:%s/b/r/donde b = cada de texto a buscar y r cada de texto por la que reemplazar

configurar un usuario fetchmail

Previamente deberiamos de tenere instalado en nuestro linux lo siguiente:

fetchmail
deletemail

el primero sirve para trabajar con los e-mail: lo coge de un servidor externo pop3 y lo movemos a nuetro exchange, vamos que trabaja sobre smtp para que nos hagamos una idea.

Mientras que el delete mail lo que hace es que cuando pase x tiempo elime los mensajes del servidor.

Esto de mantener los mensajes en el servidor es por propia copia de seguridad.

Partiendo el usuario origen que vamos a llamarlo UsrOrigen vamos a crear otro usuario llamado UsrDestino, el primero sus datos en el servidro externo son:






Hosting ExternoExchange
Dirección:emailusrorigen@dominio.extemailusrdestino@dominio.local
Login del servidor:pop3usrorigenexchgusrdestino
Contraseña de la cuenta:passwordusrorigenpasswordusrdestino
Servidor pop3:pop3.dominio.extsrvexchange


que archivos copiar:
/home/usuarioorigen/.fetchmailrc
/home/usuarioorigen/.deletemailrc

ambos archivos se han de copiar dentro de la carpeta home de cada usuario, este paso lo haremos con el usuario root

Contenido del archivo .fetchmailrc

poll pop3.dominio.ext protocol pop3
username [nombre de usuario pop3], with password [contraseña usuario pop3], to "[login]" here;


[nombre de usuario pop3]
Aqui pondriamos el login de pop3 que solemos colocar en el outlook, en nuestro ejemplo será pop3usrorigen

[contraseña usuario pop3]
Yo creo que esta muy claro es colocar la contraseña que le toque, bueno por si eres muy cazurro en nuestro ejemplo seria: passwordusrorigen

[login]
Aqui ponemos lo que bienen antes de @dominio.local es decir la cuenta del usuario de destino (exchange), me explico: recordamos que la cuenta de origen es emailusrorigen@dominio.ext y queremos enviarlo a emailusrdestino@dominio.local, pues aqui tan solo hemos de colocar emailusrdestino. Esto no necesariamente ha de ser igual al del usuario que inicie la sesion en el exchange.

Contenido del archivo .deletemailrc


GLOBAL # Valores por omision
# ssl: no # use SSL for secure IMAP connections
days: 15 # delete mail which is older than two weeks

ACCOUNT # Cuenta del usuario
host: pop3.dominio.ext # POP server
user: pop3usrorigen # username
pass: passwordusrorigen # password



Paso a paso:
ssl: no por defecto esta en este valor si necesitaramos habilitar ssl para el acceso al correo substituiriamos 'no' por 'yes'

days El número de dias que se han de mantener los correos en el servidor externo, en nuestro caso le hemos puesto 15 dias, este valor variará dependiendo del trafico de datos que se generen.

host nombre del servidor externo
user usuario con el que se ha de iniciar la sesion en el servidor externo
pass Como és lógico es la contraseña del usuario que ha de inciar sesion en el servidor

ahora tan solo falta configurar preparar el crontab o Tareas programadas.

para ello deberemos de iniciar en linux como el usuario qu equeramos realizar la programación. para ello en la linea de comandos escribiremos crontab -e el hecho de colocar -e es para editar el programador de tareas para ese usuario.

Crontab

*/10 * * * * /usr/bin/fetchmail -k -S [nombre DNS del servidor de exchange] -D [nombre del dominio] -U
00 12 * * 0 /usr/bin/deletemail -u

Notas generales Fetchmail Exchange

Para configurar los ficheritos de cada usuario

Fechmail.rc
Deletemail.rc

Ambos se encuntran en la carpeta home de cada usuario

Programador de tareas
Crontab –e
1-Lunes
0-domingo

Para salir y guardar cambios en vi :wq

-K deja copia en el servidor
-S host smtp en nuestro caso EXCHANGE
-D dominio (dominio.com)
-u sabe si es nuevo los mails o no, si no le ponemos esto, se descargaria todos los mails constantemente.

Para ver las entradas del programador de tareas:

Contrab –e
Cambiar chmod 600 los ficheritos de los usuarios

Chown para cambiar el propietario y deletemail.

chown nuevopropietario nombredelficherito” le cambiamos el propietario a .fetchmailrc


Para copiar usamos "cp archivo.origen archivo.destino"