viernes, 26 de diciembre de 2008

Estructura de postfix...

La imagen clasica de las relaciones procesos-tablas del postfix ...


miércoles, 10 de diciembre de 2008

Amavis + postfix

Cuando se tiene un esquema de gateway de correo con postfix, en ocasiones es aconsejable que el nodo interno de correo no haga nuevamente un analisis con amavis.

1) El gateway analiza con spamassassin y clamav utilizando amavis-new

2) En nodo interno de correo en el archivo de configuracion main.cf

smtpd_recipient_restrictions
check_client_access cidr:/etc/postfix/filter.cidr


El contenido de filter.cidr es:

x.x.x.x OK # Ip del gateway de correo
x.x.x.x OK
0.0.0.0/0 FILTER smtp-amavis:[127.0.0.1]:10024

jueves, 27 de noviembre de 2008

Script de Perl para renombrar archivos...

#/usr/bin/perl

@files=`ls -1 *.jpg`;
foreach $file ( @files ){
chomp($file);
$newfile=$file;
$newfile=~ s/name\_old/name\_new/;
if (-e $newfile) {
warn "No se puede renombrar $file a $newfile: $newfile ya existe\n";
}
elsif (rename $file, $newfile) {
}
else {
warn "Fallo $file a $newfile $!\n";
}
}

NOTA: Cortesia de Learning Perl.

miércoles, 12 de noviembre de 2008

vsftpd

1) apt-get install vsftpd

2) cp /etc/vsftpd.conf /etc/vsftpd.conf-dist

3) > /etc/vsftpd.conf

4) vi /etc/vsftpd.conf


# Example config file /etc/vsftpd.conf
#
#
##### GENERAL #####
# vsftpd will run in standalone mode
listen=YES

# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
pasv_min_port=20000
pasv_max_port=21000
tcp_wrappers=YES

# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=ftp

# You may fully customise the login banner string:
ftpd_banner=Welcome to OllinStudio FTP service.

# Time out an idle session.
idle_session_timeout=600

# Time out a data connection.
data_connection_timeout=120

# maximum number of clients which may be connected
max_clients=10

# maximum number of clients which may be connected from the
# same source internet address
max_per_ip=3

##### USER #####
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=no

# Uncomment this to allow local users to log in.
local_enable=YES

# Uncomment this to enable any form of FTP write command.
write_enable=YES

# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022

# messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES

# You may restrict local users to their home directories.
chroot_local_user=YES

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_list_enable=YES

# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list

# all user and group information in directory listings
# will be displayed as “ftp”
hide_ids=YES


# If userlist_deny=NO, only allow users in the file /etc/vsftpd.user_list
userlist_deny=NO


##### LOG's #########
# Activate logging of uploads/downloads.
xferlog_enable=YES

# the log file
xferlog_file=/var/log/vsftpd.log

# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES

##### Debian customization #####
#
# Some of vsftpd's settings don't fit the Debian filesystem layout by
# default. These settings are more Debian-friendly.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/vsftpd.pem





5) vi /etc/vsftpd.chroot_list
usuarios permitidos

6) vi /etc/vsftpd.ftpusers
usuarios locales no permitidos, normalmente root, admin, etc.

7) /etc/init.d/vsftpd start


NOTA:

Un error asi:

# /usr/sbin/vsftpd
500 OOPS: missing value in config file for:

Lo solucione verificando que en archivo de configuracion las lineas en blanco fueran eso lineas en blanco y no lineas con un espacio.

viernes, 7 de noviembre de 2008

Webcollab...

Webcollab es una herramienta para la administracion de proyectos.


Instalacion:

1. apt-get install mysql-server-5.0 php5-mysql apache2 libapache2-mod-php5 postfix
2. Bajar la version mas reciente
3. # cd /var/www/
# tar -zxvf webcollab-*.**.tar.gz
# ln -s webcollab-X.XX webcollab
# chmod 666 webcollab/config/config.php
4. En un webbrowser accesar a:
http://your_site/webcollab/setup.php
5. Siga las instrucciones
6. # chmod 444 webcollab/config/config.php


PD: Espero algun dia saber como integrarlo con ldap para asi no tener otra base para usuarios.

miércoles, 5 de noviembre de 2008

Herramientas de monitoreo...

Casi siempre existe la duda de que software usar para monitoreo, quiza este link te pueda ayudar a determinar cual es mejor para tu caso en particular.

http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems

Uso Nagios(monitoreo servidores) y Ganglia(nodos de una granja), por ser simples de configurar, mantener y la interfaz sencilla.

jueves, 16 de octubre de 2008

Request-Tracker 3.6 on Debian Etch

Request Tracker (RT) es un sistema de tickets que permite administrar de mejor manera tareas, solicitudes de servicio entre un grupo de usuarios. Sitio oficial

Estos son los pasos de manera general:

1) # apt-get install request-tracker3.6 rt3.6-apache2 mysql-server-5.0 rt3.6-db-mysql

2) # apt-get install postfix

3) vi /etc/request-tracker3.6/RT_SiteConfig.pm

Set($rtname, 'XXXXXX');
Set($Organization, 'XXXXX');

Set($CorrespondAddress , 'rt@XXXXX');
Set($CommentAddress , 'rt-comment@XXXXX');

Set($WebPath , "/rt");
Set($WebBaseURL , "http://mi_ip");

Set($LogoLinkURL, 'http://mi_sitio');
Set($LogoImageURL, $WebImagesURL . "LOGO_IMG.jpg");

my %typemap = (
mysql => 'mysql',
pgsql => 'Pg',
sqlite3 => 'SQLite',
);

Set($DatabaseType, $typemap{mysql} );

#Set($DatabaseHost, 'localhost');
#Set($DatabasePort, '');

Set($DatabaseUser , 'rtuser');
Set($DatabasePassword , 'mi_passwd_rt36');
Set($DatabaseName, 'rtdb_name');


4) vi /etc/apache2/sites-enabled/000-default

Include "/etc/request-tracker3.6/apache2-modperl2.conf"
RedirectMatch ^/$ /rt/


5) # cd /etc/apache2/mods-enabled/
# ln -s ../mods-available/rewrite.load .
# /etc/init.d/apache2 restart


6) http://mi_sitio/rt/

Login: root
Password: password

RT y ldap...

RT tiene la opcion de poder definirle metodo de autenticacion externa via OpenLdap

En lo personal se me hizo mas simple la instalacion manual que comentan en la liga.

Despues de la instalacion del modulo, es necesaria una configuracion en el archivo de configuracion /etc/request-tracker3.6/RT_SiteConfig.pm

Esta es la configuracion de mi sitio:

### MY_LDAP Settings

Set($AuthMethods, [ 'MY_LDAP' ]);

Set($ExternalAuthPriority,['MY_LDAP']);

Set($ExternalInfoPriority, [ 'MY_LDAP' ]);

Set($LdapAutoCreateNonLdapUsers, 1);

Set($AutoCreateNonExternalUsers, 1);

Set($ExternalSettings, {'MY_LDAP' =>{
'type' => 'ldap',
'auth' => 1,
'info' => 1,
'server' => '172.16.29.X',
'base' => 'ou=People,dc=XXX',
'filter' => '(objectclass=posixAccount)',
'd_filter' => '(objectClass=posixGroup)',
'tls' => 0,
'net_ldap_args' => [ version => 3 ],
'attr_match_list' => [ 'Name', 'EmailAddress', 'RealName', 'WorkPhone', 'Address2'],
'attr_map' => { 'Name' => 'uid',
'EmailAddress' => 'mail',
'RealName' => 'cn',
'Organization' => 'XXXXXXXXX XXXX',
'ExternalContactInfoId' => 'dn',
'Gecos' => 'cn',
'HomePhone' => ' ',
'WorkPhone' => ' ',
'MobilePhone' => ' ',
'PagerPhone' => 'pager',
'Address1' => ' ',
'Address2' => ' '
}
}
});

miércoles, 15 de octubre de 2008

Apache+LDAP en Debian...

Para configurar la authenticacion con ldap de un usuario para acceder a un sitio que provee un apache. Esta nota esta en el entendido de que tiene un servidor ldap funcionando y un servidor apache en Debian.


1) Habilitando modulos en configuracion de apache

cd /etc/apache2/mods-enabled/
ln -s ../mods-available/authnz_ldap.load .
ln -s ../mods-available/ldap.load .

2) Configurando la ruta

cd ../sites-enabled/
vi 000-default

Alias /Documentos/ "/var/www/Documentos/"

AuthType Basic
AuthName "Restricted Access"
AuthBasicProvider ldap
AuthLDAPURL "ldap://mi_server_ldap:389/ou=People,dc=midc?uid"
require valid-user


3) Reiniciar el sevicio de apache

/etc/init.d/apache2 restart

4) Comprobar accesando a http://misitio/Documentos

martes, 16 de septiembre de 2008

Tux images



Me gusta mucho la imagen de Tux, incluso sumulando multiples personajes. Para muestra un boton.


http://tux.crystalxp.net/

lunes, 1 de septiembre de 2008

Migracion del historial de Mailgraph

Este procedimiento lo he probado para migrar entre diferentes arquitecturas base de datos de Mailgraph.

1) En el servidor actual de mailgraph

# cd /var/lib/mailgraph
# rrdtool dump mailgraph.rrd > mailgraph.xml
# rrdtool dump mailgraph_virus.rrd > mailgraph_virus.xml

2) Copiar a la ruta destino los archivos xml generados por los comandos anteriores.


3) En el equipo a donde se migrara la base rrd

# cd /var/lib/mailgraph
# rrdtool restore mailgraph.xml mailgraph.rrd
# rrdtool restore mailgraph_virus.xml mailgraph_virus.rrd


Nota:
* Siempre he migrado de un servidor Debian Linux a otro servidor Debian Linux.
* He probado este procedimiento entre sparc a intel y de intel a ppc

viernes, 15 de agosto de 2008

Bash tips.....

* Poner un timestamps en el historial de Bash

Si es solo para un usuario, definir la variable HISTTIMEFORMAT en el ~/.bash_profile. Si es para todos los usuarios usar el /etc/profile. Ejemplo:

HISTTIMEFORMAT='%F %T '
export HISTTIMEFORMAT

lunes, 11 de agosto de 2008

Recurso compartido win2 en linux

Listar recursos:

# smbclient -U user -I 192.168.16.229 -L //smbshare/



Montar un recurso

# mount -t smbfs -o username=winuser //smbserver/myshare /mnt/smbshare
# mount -t cifs -o username=winuser,password=winpwd //192.168.16.229/myshare /mnt/share

jueves, 17 de julio de 2008

Commands...

seq - print a sequence of numbers

local@debian:~$ for n in `seq 11 15`; do echo $n; done
11
12
13
14
15



split - split a file into pieces

local@debian:~$ ls -1 | split -5



watch - execute a program periodically, showing output fullscreen

local@debian:~$ watch -n 5 uptime

o

local@debian:~$ while sleep 5 ; do uptime ; done



pidof -- find the process ID of a running program.

local@debian:/bin$ pidof ssh
3875 3830 3822 3818 3815 3812 3809 3806





column - columnate lists


local@debian:/tmp$ ls | column -c 1
gconfd-local
keyring-TdbxsI
LDAP1.0_RT3.tar.gz
LDAP_RT3




stat - display file or file system status


local@debian:/tmp$ ls -l x
-rw-r--r-- 1 local local 135273 2008-08-11 16:41 x
local@debian:/tmp$ stat -c %a x
644



chattr - change file attributes on a Linux second extended file system


debian:/home2/local# chattr +i dir_inmutable

inmutable = root can't delete the file


lsattr - list file attributes on a Linux second extended file system


debian:/home2/local# lsattr -d dir_inmutable/
----i------------- dir_inmutable/


fdupes - finds duplicate files in a given set of directories

local@debian:~$ cp marcela_alegria.tex x.txt
local@debian:~$ fdupes .
./marcela_alegria.tex
./x.txt


Source: http://www.debian-administration.org/articles/605

[root@benito2 DPX]# netstat -tunlp

miércoles, 16 de julio de 2008

Debian en Mac G5

Para no variar queria experimentar Debian en una Mac G5. He aqui mi historia.

Instalacion:

Use un CDROM, pero debo confesar que no conozco mucho del mundo Mac asi que tuve que investigar como bootear desde la unidad de CD ( ya aprendi es encender el equipo y presionar la tecla Option-alt ).

Despues de haber logrado bootear desde cdrom, pense que seria en el prompt de boot, el clasico install, pero resulto que si lo hacia me aparecia este error:


opening display /pci@0, f0000000/NVDA,parent@10/NVDA,Display-A@0... ok
copying 0F device tree...done
Initializing fake screen: NVDA,Display-B
Calling quiesce ...
returning 0x01400000 from prom_init

Invalid memory access at %SRR0: 00000000.01403b88 %SRR1: 10000000.00083030

Apple Powermac 7,2 5.1.5f2 BootROM built on 09/21/04 at 11:58:53
Copyright 1994-2004 Apple Computer, Inc.
All Rights Reserved

Welcome to Open Firmware, the system time and date is 22:46:07 10/27/2004

To continue booting, type 'mac-boot' and press return
To shut down, type 'shut-down' and press return

Release keys to continue!



Leyendo un poco en la red encontre que se soluciona usando en el boot: expert64 video=ofonly

Despues otra que sucedio es que particione segun considere necesario, pero mas adelante en la instalacion me aparecio un error que decia:

No NewWorld boot partition was found. The yaboot boot loader requires an Apple_Bootstrap partition at least 819200 bytes in size, using the HFS Macintosh ...

Por lo que entendi, es que debia tener una particion para poner el boot loader. Creandola es suficiente.


Operacion:

Tan bella como siempre en un Debian ;)

viernes, 20 de junio de 2008

kde KCrash: Application 'kbuildsycoca' crashing...

KDE no termina de iniciar sesion y en .xsession-errors aparece.

startkde: Starting up...
kbuildsycoca running...
KCrash: Application 'kbuildsycoca' crashing...

Lo solucione iniciando session en gnome y en una terminal ejecutar kbuildsycoca. Salir e iniciar KDE.

jueves, 5 de junio de 2008

Ldap commands...

Para iniciar/detener servicio:
/etc/init.d/sladp start | stop


Para crear un index:
slapindex -v -f /etc/ldap/slapd.conf


Para backup de la base:
/etc/init.d/slapd stop (Debe estar detenido el servicio)
slapcat -v -f /etc/ldap/slapd.conf -l /home/local/backup-ldap.ldif



Para recuperar la base desde un respaldo:
/etc/init.d/slapd stop
rm -rf /var/lib/ldap/*
slapadd -v -c -l /home/admin/backup-ldap.ldif -f /etc/ldap/slapd.conf
/etc/init.d/slapd start



Para agregar un registro:
ldapadd -x -D 'cn=admin,dc=example,dc=exampledomain' -w password -f rvillar.ldif


Para eliminar un registro:
ldapdelete -x -h 127.0.0.1 -D 'cn=admin,dc=example,dc=exampledomain' -w password "cn=userdel,ou=People,dc=example,dc=exampledomain"


Para busquedas:
ldapserach -x
ldapsearch -x -b 'dc=example,dc=exampledomain' cn='Marcela Alegria' uid ou
ldapsearch -x -b 'dc=example,dc=exampledomain' "(&(ou=Math)(cn=*Pig*))"


Para crear una cadena para password cifrada:
slappasswd -u -s

Migracion del servicio Openldap a un nuevo servidor Debian...

Estos fueron los pasos que hice para migrar la informacion de un servidor ldap existente a un nuevo servidor de ldap (Debian).


* Hacer respaldo de la base ldap en el servidor actual

1) /etc/init.d/slapd stop
2) slapcat -v -f /etc/ldap/slapd.conf -l /home/local/backup-ldap.ldif


* En el nuevo servidor:


1) Instalacion de openldap

apt-get install slapd ldap-utils

2) En mi caso el apt-get no me pregunto nada y trato de configurarlo con informacion local, pero fue necesario cambiarlo a la definicion del servidor anterior.

# /etc/init.d/slapd stop

# vi /etc/ldap/ldap.conf
BASE dc=misubdom,dc=midom
URI ldap://127.0.0.1


# vi /etc/ldap/slapd.conf
suffix "dc=misubdom,dc=midom"
rootdn "cn=admin,dc=misubdom,dc=midom"


3) Probando la configuracion

# slaptest -f /etc/ldap/slapd.conf -d2


4) Iniciando el servicio
#/etc/init.d/slapd start

7) Comprobando que funciona
# ldapsearch -x

8) Ahora si, la migracion de la informacion propiamente dicho:

# /etc/init.d/slapd stop
# slapadd -v -c -l /home/admin/backup-ldap.ldif -f /etc/ldap/slapd.conf

9) Iniciando el servicio
#/etc/init.d/slapd start

10 ) Comprobando que funciona
# ldapsearch -x

miércoles, 4 de junio de 2008

Mi historia con Debian y Blu-Ray

Algo que me disgustaba mucho es tener que usar windows para leer el contenido de un disco de datos bluray, asi que me puse a investigar como poder leerlo desde mi Debian. Esta es la historia:

1) Verificar que tenia el modulo para udf:

$ lsmod | grep udf

2) Identificar el dispositivo al que hace referencia:

$ udevinfo -q env -n /dev/sr1
ID_CDROM=1
ID_CDROM_CD_R=1
ID_CDROM_CD_RW=1
ID_CDROM_DVD=1
ID_CDROM_DVD_R=1
ID_CDROM_DVD_RAM=1
ID_CDROM_MRW=1
ID_CDROM_MRW_W=1
ID_CDROM_RAM=1
ID_VENDOR=HL-DT-ST
ID_MODEL=BD-RE_GGW-H20L
ID_REVISION=YL01
ID_SERIAL=HL-DT-ST_BD-RE_GGW-H20L_635222222222-0:0
ID_SERIAL_SHORT=635222222222
ID_TYPE=cd
ID_INSTANCE=0:0
ID_BUS=usb
ID_PATH=pci-0000:00:1d.7-usb-0:8:1.0-scsi-0:0:0:0
GENERATED=1


Hasta ahi, parecia todo OK, hasta que se me ocurrio ejecutar el comando mount.

# mount -t udf -o ro /dev/sr1 /media/bluray/
mount: wrong fs type, bad option, bad superblock on /dev/scd1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so


Y claro a checar que mensaje mandaba dmesg:

UDF-fs: minUDFReadRev=250 (max is 201)

Ya con ese mensaje busque en la red la solucion y vi que se debe parchar el kernel para que soporte blu ray en version 2.50. Facil, no?... Claro, si se hace al modo Debian.

1) Bajar UDF 2.50 patch for linux 2.6.24

2) Instalar paquetes necesarios:

apt-get install libncurses5-dev linux-source-2.6.24 kernel-package

3) cd /usr/src
4) rm -rf linux
5) tar xjvf linux-source-2.6.24.tar.bz2
6) ln -s linux-source-2.6.24 linux
7) cd linux
8) cp /boot/config-2.6.24-1-686 .config
9) bzcat | patch -p1
10) make menuconfig
11) make-kpkg buildpackage -rev Custom.1 kernel_image
12) dpkg -i linux-image-2.6.24_Custom.1_i386.deb
13) shutdown -r now
14) mount -t iso9660 -o ro /dev/sr1 /media/bluray
15) ls -l /media/bluray

Nota: Encontre en la red dos cosas interesantes, pero creo que hasta cierto punto opuestas:
1) Nero tiene su version para Linux que permite quemar discos bluray
2) los bluray en Linux son por el momento de "solo lectura" :(

sábado, 3 de mayo de 2008

Debian como cliente de autenticacion de Openldap..

1) # apt-get install libpam-ldap libnss-ldap

2) Modificar archivos de pam para definir que sea valido autenticacion via ldap.

En /etc/pam.d/common-account

account sufficient pam_ldap.so
account required pam_unix.so


En /etc/pam.d/common-auth

auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure


En /etc/pam.d/common-password

password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5


En /etc/pam.d/common-session

session sufficient pam_ldap.so
session required pam_unix.so


En /etc/nsswitch.conf:

:%s/compat/ldap files/g




SOLUCION DE PROBLEMAS:

1) Cuando se trata de un usuario local, pide en 2 ocasiones el password. Eso se soluciona poniendo una opcion mas en los archivos /etc/pam.d/common-*

use_first_pass

ejemplo:
/etc/pam.d/common-auth

auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass

2) Al reiniciar el equipo, manda durante el boot el mensaje:


udevd[374]: nss_ldap: could not connect to any LDAP server as (null) - Can't contact LDAP server
udevd[374]: nss_ldap: failed to bind to LDAP server ldap://ip.ldap: Can't contact LDAP server



Eso pasa por que se trata de conectar al servidor ldap antes de levantar la interfaz de red. Lo solucione asi:

# rm -rf /etc/rcS.d/S40networking
# ln -s /etc/init.d/networking /etc/rcS.d/S09networking

jueves, 1 de mayo de 2008

RPM - DEB

Comando utiles e interesantes


RPM:

rpm -qa --last ---> listar en orden de mas reciente a mas antiguo todos los paquetes instalados.

rpm2cpio | cpio -icduv ---> extraer el contenido del rpm en el directorio actual.

rpm -qpl archivo.rpm ---> lista el contenido de un archivo rpm no instalado.

rpm -ql paquete ---> lista el contenido de un rpm instalado.

rpm -qf archivo ---> Da el nombre del paquete que provee dicho archivo



DEB:

apt-show-versions ---> herramienta para listar paquetes y su estado respecto al repositorio. Para saber la version de determinado paquete usa -r paquete o bien usa -u para saber si esta actualizado o hay alguna actualizacion pendiente.

sort -r /var/log/dpkg.log | awk '{ if ($3=="install" ) print $4 " " $6 "\t" $1 " " $2 }' ---> como root puede listar de manera similar a rpm -aq --last

dpkg -X ---> extraer el contenido de un deb.

dpkg -c paquete_NO_instalado ---> Lista de archivos que provee el paquete deb NO instaldo.

dpkg -L paquete_instalado ---> Lista de archivos que provee el paquete deb.

dpkg -S archivo ---> Lista el nombre de paquete que provee dicho archivo


ALIEN:

alien -d paquete.rpm

martes, 29 de abril de 2008

KDE default desktop

En /etc/sysconfig/desktop

DESKTOP="KDE"
DISPLAYMANAGER="KDE"

Reiniciar X y listo!

martes, 22 de abril de 2008

Mailgraph

Es una herramienta para monitorea un servidor de correo. En ocasiones es necesario migrar dicho servicio entre servidores, sin perder el historico actual, para eso:

1) Instala mailgraph

apt-get install rrdtool mailgraph

2) Configura mailgraph

less /etc/default/mailgraph

3) Define los valores correctos para $rrd, $rrd_virus, $tmp_dir en /usr/lib/cgi-bin/mailgraph.cgi

4) Exporta/importa los archivos rrd:

= Si estas migrando entre iguales arquitecturas con que pongas los archivos mailgraph.rrd y mailgraph_virus.rrd en la ruta correcta.

= Si la migracion es entre diferentes arquitecturas usa:

1. Exportar la base
# rrdtool dump archivo(s).rrd > respaldo.xml

2.Importar la base
# rrdtool restore respaldo.xml


Nota: Este procedimiento esta muy enfocado a que el servidor a donde se migrara la base de mailgraph sea un Debian, sin embargo en terminos generales solo variara el metodo de instalacion.

Script de perl para pruebas del servidor de correo....

Script para pruebas de recepcion de correo, normalmente lo uso para pruebas de stress
=====================================================================================

#!/usr/bin/perl
use MIME::Lite;
$to = $ARGV[0];
$msg = new MIME::Lite
From =>'midir@dominioorigen',
To =>$to,
Subject =>'Mail para prueba de stress',
Type =>'multipart/mixed';

attach $msg
Type =>'TEXT',
Data =>"

Aqui cualquier mensaje
";
$msg->send;





Script para probar que esta detectando correctamente correo spam
================================================================

#!/usr/bin/perl
use MIME::Lite;
$to = $ARGV[0];
$msg = new MIME::Lite
From =>'direccion@dominioorigen',
To =>$to,
Subject =>'Prueba para spam',
Type =>'multipart/mixed';

attach $msg
Type =>'TEXT',
Data =>"


XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X



";
$msg->send;



Script para probar que esta detectando correctamente correo con un adjunto con virus (clamav)
=============================================================================================
!/usr/bin/perl
use MIME::Lite;
$to = $ARGV[0];

### Adjust subject and body message
my $subject = 'A message with 2 parts ...';
my $message_body = "Here's the attachment file(s) you wanted";

### Adjust the filenames
my $my_file = '/home/marce/clam.cab';

### Create the multipart container
$msg = MIME::Lite->new (
From => 'midir@dominoorigen',
To => $to,
Subject => $subject,
Type =>'multipart/mixed'
) or die "Error creating multipart container: $!\n";

### Add the text message part
$msg->attach (
Type => 'TEXT',
Data => $message_body
) or die "Error adding the text message part: $!\n";

### Add the file
$msg->attach (
Type => 'image/gif',
Path => $my_file,
# Filename => $your_file_gif,
Disposition => 'attachment'
) or die "Error adding $file_gif: $!\n";

### Send the Message
MIME::Lite->send('smtp', $mail_host, Timeout=>60);
$msg->send;



NOTA:

En todos estos script se envia por argumento la direccion a quien sera enviado el mail.

jueves, 17 de abril de 2008

Saber informacion de la configuracion de un sistema

AIX:
prtconf
lscfg

IRIX:
hinv - hardware -
chkconfig - software -

MAC OS:
system_profiler

SOLARIS:
prtconf
sysdef

LINUX:
/usr/sbin/lshw

por comandos separados:
uname - Version SO, arquitectura, nombre del host
free - memoria
/proc/cpuinfo - procesador

martes, 4 de marzo de 2008

Sony Vaio VGN-CR160F con Debian lenny/sid

Para actualizar de Etch a Lenny en Sony Vaio VGN-CR160F.

1) apt-get update
2) apt-get dist-upgrade
3) El sistema ya no levanta debido a que no se carga el modulo para el disco duro. Manda como el mensaje de error siguiente:

Begin: Waiting for root filesystem...
Done.
WARNING boot device may be renamed. Try root = /dev/hda3
ALERT! /dev/hda3 does not exist. Dropping to a shell!
Check your root= boot argument (cat /proc/cmdline)
Check for missing modules (cat /proc/modules), or device files (ls /dev)

BusyBox v1.01 (Debian 1:1.01-4) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; job control turned off
/ #


4) En el shell ejecutar: modprobe ide-disk; modprobe ide-generic; exit
5) Cargando los modulos anteriores el sistema termina de arrancar. Pero es necesario que esos modulos sean cargados siempre:
a) agregar al archivo /etc/initramfs-tools/modules, las lineas ide-generic e ide-disk
b) mkinitramfs -v -o /boot/initrd.img-2.6.22.14 2.6.22.14

6) Reiniciar

Recapitulando:

* video: Es necesario xserver-xorg-video-intel, aunque ya no asi el paquete 915resolution.

* sonido: Paquetes alsa* a versiones 1.0.15-2 o superiores.

* La interfaz Ethernet: Modulo r8169.

* Red inalambrica: Modulo mac80211, iwlwifi-4965

* motioeye: Modulo r5u870-0

jueves, 21 de febrero de 2008

Eliminar de un nombre de archivo la extension..

#!/usr/bin/perl
#
# Eliminar de la cadena de nombre de un archivo
# la extension.
# El argumento es pasado en la linea de comando.
#############


@allwords = split(/\./, $ARGV[0]);
$ext = pop(@allwords);
foreach $item ( @allwords ){
print $item.".";
}
print "\n";

jueves, 17 de enero de 2008

Fecha formato unix a otro formato

#!/usr/bin/perl
#####################################
# Traduce de una fecha formato
# unix a fecha AAMMDDHHMMSS
#
#######################


print " Para salir escriba no \n";
while ( 1 ){
print " Introduce : ";
chomp($ARCH=);
if ( lc($ARCH) =~ /no/){
exit;
}
@timeData = localtime($ARCH);
#print " @timeData \n";
#Seconds,Minutes,Hours,Day,Months,years (since 1900),days( since sunday), Number of days since the start of the yer,Whether or not daylight savings is active
if (($timeData[5]-100)>=0 && ($timeData[5]-100)<=9){
print "0".($timeData[5]-100);
}
else{
print ($timeData[5]-100);
}
if (($timeData[4]+1)>=0 && ($timeData[4]+1)<=9){
print "0".($timeData[4]+1);
}
else{
print ($timeData[4]+1);
}
if (($timeData[3])>=0 && ($timeData[3])<=9){
print "0$timeData[3]";
}
else{
print "$timeData[3]";
}
if ($timeData[2]>=0 && $timeData[2]<=9){
print "0$timeData[2]";
}
else{
print "$timeData[2]";
}
if ($timeData[1]>=0 && $timeData[1]<=9){
print "0$timeData[1]";
}
else{
print "$timeData[1]";
}
if ($timeData[0]>=0 && $timeData[0]<=9){
print "0$timeData[0]";
}
else{
print "$timeData[0]";
}
print "\n";
}


==============

Ejemplo :
Para salir escriba no
Introduce : 1181715026
070613011026
Introduce : no