martes, 25 de octubre de 2011

Debian caído code 4 fsck

el dia de ayer se ha caído mi Debian squezze 64 bits, como tenia modificado el usplash no podía ver el error al iniciar /: estube a punto de formatear; pero no me di por vencido hasta que pude ver el error. pero bueno lo que decía era algo mas o menos que debía iniciar fsck manualmente con code 4:

run fsck MANUALLY

(i.e., without -a or -p option) fsck died with exit status 4 failed (code 4)

file system check failed a log is being saved in /var/log/fsck/checkfs

if thar location is writable, please repair the file system manually.. failer!

a maintence shell will now be started. control D will terminate this shell and resume system boot... (warning) give root password for maintenance (or type control-D to continue)


la verdad me desespere un poco xD y bueno hay mismo salían las indicaciones, pero no me dejeba ocupar la consola. decidí iniciar la consola al inicio agregando init=/bin/bash al grub, intente iniciar en modo recuperativo, y la verdad quede decepcionado porque nada funcaba entonces decidí buscar un poco mas de info sobre el comando fsck.
abrí el disco duro con un backtrack que tengo en un pendriver, y resolví los errores con la siguiente instrucción:

fsck -c -f -v -y /dev/sda1

los argumentos que se expresan son:
-c : chequear disco duro
-f : forzar el chequeo (en resumidas cuentas)
-v : verbose lo abras visto en otros comandos, es para explayar lo que esta haciendo el comando
-y : es para aceptar automáticamente el fix; o reparo;
/dev/sad1 ubicación del disco defectuoso

puedes verificar la ubicacion de tu disco duro fdisk -l

espero ayude.
Saludos



miércoles, 12 de octubre de 2011

Instalar ASP Debian Squezze

He estado jugando con ASP ,que tiene varias similitudes con PHP5, pero solo lo he hecho en servers ajenos, servidores IIS.
Existe una forma de correr ASP en nuestro servidor Debian squezze, a travez de un opensource llamdo mono, este "framework"  o modulo, nos permite ejecutar archivos aspx en linux. para instalarlo sigue  los sguientes pasos:
  1. #paramos apache  
  2.  
  3. /etc/init.d/apache stop
  4.  
  5. #instalamos el modulo mono
  6.  
  7. apt-get install libapache2-mod-mono mono-apache-server
  8.  
  9. # debemos quitar el modulo, para configurar si inicio automatico
  10.  
  11.  
  12. a2dismod mod_mono
  13.  
  14. # añadimos el inicio automatico de mono
  15.  
  16. a2enmod mod_mono_auto
  17.  
  18. # ahora levantamos el server apache
  19.  
  20. /etc/init.d/apache start
  21.  
  22. # podemos instalar fuentes o ejemplos asp o aspx directamente desde los repositorios:
  23.  
  24. apt-get install asp.net-examples
  25.  
  26. #para visualizarlos  debemos crear un enlace:
  27.  
  28. ln -s /usr/share/asp.net-demos/ /var/www/ejemploasp
  29.  
  30. #para ver estos ejemplos, desde el navegador digita:
  31.  
  32. http://localhost/ejemploasp
Saludos --

martes, 6 de septiembre de 2011

Tutorial Proftpd con Mysql y Administrador Web

Proftpd es un servidor FTP, altamente configurable, del cual podemos administrar los usuarios mediante PAM,Mysql,etc.
Cuando tienes muchos usuarios dentro de tu servicio FTP se puede volver algo engorroso o quizás no funcional la administración de dichos usuarios, para ello debemos recurrir a una nueva forma mas eficaz,rapida y mas amigable. En ello encontramos Proftpd_Admin el cual nos permite agregar,eliminar y crear cuotas de almacenamiento o de archivos, de una forma gráfica, fácil y rápida.
Con esta herramienta se crean usuarios delimitados por grupos y cuotas, y todo aquello queda almacenado en el motor Mysql.
sin mas preámbulo, la instalación comienza descargando Proftptd y el modulo mysql para la autenticacion 
como prerequisito debes tener instalado apache,php5, el modulo php-mysql y por lo mínimo conocimientos básicos de apache.
1) instalacion de proftpd
#apt-get install proftpd proftpd-mod-mysql mysql-server

Descargamos Proftpd_Admin desde aquí , que es básicamente una pagina web.

3) 
 Descomprimimos en /var/www/nombredominio :

 4)
  Configurar Proftpd:
  a) debes cargar la siguiente estructura en mysql, te recomiendo phpmyadmin para gestionar el siguiente script:
CREATE DATABASE proftpd_admin;
USE proftpd_admin;

CREATE TABLE usertable (
  userid text,
  passwd text,
  homedir text,
  shell text,
  uid int(11) NOT NULL auto_increment,
  gid int(11) default NULL,
  count int(11) NOT NULL default '0',
  lastlogin datetime NOT NULL default '0000-00-00 00:00:00',
  lastlogout datetime NOT NULL default '0000-00-00 00:00:00',
  expiration datetime NOT NULL default '0000-00-00 00:00:00',
  disabled tinyint(4) default '0',
  det_name tinytext,
  det_mail tinytext,
  det_adress tinytext,
  det_notes tinytext,
  PRIMARY KEY  (uid)
) TYPE=MyISAM;

CREATE TABLE grouptable (
  groupname text,
  gid int(11) NOT NULL auto_increment,
  members text,
  description tinytext,
  PRIMARY KEY  (gid),
  UNIQUE KEY gid_2 (gid),
  KEY gid (gid)
) TYPE=MyISAM;

CREATE TABLE xfer_stat (
  userid text,
  file text,
  size bigint(20) default '0',
  address_full text,
  address_ip text,
  command text,
  timespent text,
  time text,
  cmd text,
  dunno text
) TYPE=MyISAM;

CREATE TABLE `ftpquotalimits` (
  `name` varchar(30) NOT NULL default '',
  `quota_type` enum('user','group','class','all') NOT NULL default 'user',
  `per_session` enum('false','true') NOT NULL default 'false',
  `limit_type` enum('soft','hard') NOT NULL default 'hard',
  `bytes_in_avail` float NOT NULL default '0',
  `bytes_out_avail` float NOT NULL default '0',
  `bytes_xfer_avail` float NOT NULL default '0',
  `files_in_avail` int(10) unsigned NOT NULL default '0',
  `files_out_avail` int(10) unsigned NOT NULL default '0',
  `files_xfer_avail` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`name`)
) TYPE=MyISAM;

CREATE TABLE `ftpquotatallies` (
  `name` varchar(30) NOT NULL default '',
  `quota_type` enum('user','group','class','all') NOT NULL default 'user',
  `bytes_in_used` float NOT NULL default '0',
  `bytes_out_used` float NOT NULL default '0',
  `bytes_xfer_used` float NOT NULL default '0',
  `files_in_used` int(10) unsigned NOT NULL default '0',
  `files_out_used` int(10) unsigned NOT NULL default '0',
  `files_xfer_used` int(10) unsigned NOT NULL default '0'
) TYPE=MyISAM;

CREATE TABLE admintable (
    ID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(30) NOT NULL,
    password CHAR(64) NOT NULL,
    email VARCHAR(100) NOT NULL,
    lastlogin datetime NOT NULL default '0000-00-00 00:00:00',
    disabled tinyint(4) default '0',
    falseLogins int(11) NOT NULL default '0'
) TYPE=MyISAM;

INSERT INTO usertable (uid) VALUES (9999);
DELETE FROM usertable WHERE uid=9999;
INSERT INTO grouptable (gid) VALUES (9999);
DELETE FROM grouptable WHERE gid=9999;
INSERT INTO grouptable (groupname, description) VALUES ("admins", "Administrators");
INSERT INTO grouptable (groupname, description) VALUES ("users", "Ordinary users");

/* prodtpd-administratror user */
GRANT ALL ON usertable TO proftpd@ftp IDENTIFIED BY 'test';
GRANT ALL ON grouptable TO proftpd@ftp IDENTIFIED BY 'test';
GRANT ALL ON xfer_stat TO proftpd@ftp IDENTIFIED BY 'test';
GRANT ALL ON ftpquotatallies TO proftpd@ftp IDENTIFIED BY 'test';
GRANT ALL ON ftpquotalimits TO proftpd@ftp IDENTIFIED BY 'test';
GRANT ALL ON admintable TO proftpd@ftp IDENTIFIED BY 'test';

/* userQuota.php  DB User */
GRANT SELECT ON * TO userview@ftp IDENTIFIED BY 'test123';

b) entraremos a el proftpd_admin,desde el navegador http://localhost/eldominio o http://eldominio. posiblemente nos salga esto:

Si no tienes este inconveniente pasa al paso C. Esto ocurre porque nuestro archivo configuration.xml no tienes los permisos de lectura y escritura adecuados:
#chmod 776 configuration.xml


c) Ahora tenemos nos salda esto:

esto nos dice que debemos configurar el accesso a la base de datos: nos vamos a la paleta configure y nos dira:




lo recomendable es que la base de datos creada proftpd_admin tenga su propio usuario, y no el root del sistema, ademas.
este punto no necesita mucha explicacion; username: nombre dueño base datos
password:"lacontraseña"
hostname"donde esta mysql, en este caso localhost"
database:"en este caso proftpd_admin" (como sale en el script superior)

d) Configuraremos los archivos de proftpd para gestionar los usuarios con mysql:
estos en Debian squeeze se encuntran en: /etc/proftpd de los archivos alojados nos interesa proftpd.conf,modules.conf y agregaremos include_mysql.conf
vamos a hacer un backup de este:
cp proftpd.conf proftpd.conf.back
remplazamos el proftpd.conf por:
ServerName                      "Server Ncw"
ServerType                      standalone
ServerIdent                     on              "Bienvenido"
DeferWelcome                    on
DefaultServer                   on

DisplayLogin                    .welcome        # Textfile to display on login
DisplayConnect                  .connect        # Textfile to display on connection
#DisplayFirstChdir               .firstchdir     # Textfile to display on first changedir

UseReverseDNS                   off
IdentLookups                    off

Port                            21
Umask                           022
MaxInstances                    15
MaxClientsPerHost               3               "Only %m connections per host allowed"
MaxClients                      10              "Only %m total simultanious logins allowed"
MaxHostsPerUser                 1

User                            ftp
Group                           nogroup

ScoreboardFile                  /var/log/scoreboard

#carga modulos 
Include /etc/proftpd/modules.conf
# Some logging formats
LogFormat                       default         "%h %l %u %t \"%r\" %s %b"
LogFormat                       auth            "%v [%P] %h %t \"%r\" %s"
LogFormat                       write           "%h %l %u %t \"%r\" %s %b"

# Define log-files to use
TransferLog                     /var/log/proftpd.xferlog
ExtendedLog                     /var/log/proftpd.access_log    WRITE,READ write
ExtendedLog                     /var/log/proftpd.auth_log      AUTH auth
ExtendedLog                     /var/log/proftpd.paranoid_log  ALL default
SQLLogFile                      /var/log/proftpd.mysql
QuotaLog                        /var/log/proftpd.quota

# Set up authentication via SQL
# ===========
AuthOrder                       mod_sql.c
SQLAuthTypes                    Backend
SQLConnectInfo                  proftpd_admin@localhost usuario contraseña 
SQLUserInfo                     usertable userid passwd uid gid homedir shell 
SQLGroupInfo                    grouptable groupname gid members 
SQLUserWhereClause              "disabled=0 and (NOW()<=expiration or expiration=-1 or expiration=0)"

# Log the user logging in
SQLLog PASS counter
SQLNamedQuery counter UPDATE "lastlogin=now(), count=count+1 WHERE userid='%u'" usertable

# logout log
SQLLog EXIT time_logout
SQLNamedQuery time_logout UPDATE "lastlogout=now() WHERE userid='%u'" usertable

# display last login time when PASS command is given
SQLNamedQuery login_time SELECT "lastlogin from usertable where userid='%u'"
SQLShowInfo PASS "230" "Last login was: %{login_time}"

# xfer Log in mysql
SQLLog RETR,STOR transfer1
SQLNamedQuery  transfer1 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'c', NULL" xfer_stat
SQLLOG ERR_RETR,ERR_STOR transfer2
SQLNamedQuery  transfer2 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'i', NULL" xfer_stat

# User quotas
# ===========
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail,bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used,files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1},bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4},files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally


AllowStoreRestart               on
AllowRetrieveRestart            on
RequireValidShell               off
PathDenyFilter                  "\\.ftp)|\\.ht)[a-z]+$" 
DefaultRoot                     ~
DenyFilter                      \*.*/



        AllowOverwrite          on
        HideNoAccess            off
        
                AllowAll
        

        
                DenyGroup       !admins
        



        AllowOverwrite          on
        HideNoAccess            on

        
                DenyGroup       !admins
        

        
                AllowAll
        

en la linea 45 hay que cambiar usuario por el  dueño de la base de datos proftpd_admin y la contraseña de esta misma

2) modificar (reemplazar) el archivo modules.conf  por:

#
# This file is used to manage DSO modules and features.
#

# This is the directory where DSO modules reside

ModulePath /usr/lib/proftpd

# Allow only user root to load and unload modules, but allow everyone
# to see which modules have been loaded

ModuleControlsACLs insmod,rmmod allow user root
ModuleControlsACLs lsmod allow user *

LoadModule mod_ctrls_admin.c
LoadModule mod_tls.c

# Install one of proftpd-mod-mysql, proftpd-mod-pgsql or any other
# SQL backend engine to use this module and the required backend.
# This module must be mandatory loaded before anyone of
# the existent SQL backeds.
LoadModule mod_sql.c

# Install proftpd-mod-ldap to use this
#LoadModule mod_ldap.c

#
# 'SQLBackend mysql' or 'SQLBackend postgres' directives are required 
# to have SQL authorization working. You can also comment out the
# unused module here, in alternative.
#

# Install proftpd-mod-mysql and decomment the previous
#mod_sql.c module to use this.
LoadModule mod_sql_mysql.c

# Install proftpd-mod-pgsql and decommen the previous 
# mod_sql.c module to use this.
#LoadModule mod_sql_postgres.c

# Install proftpd-mod-sqlite and decomment the previous
# mod_sql.c module to use this
#LoadModule mod_sql_sqlite.c

# Install proftpd-mod-odbc and decomment the previous
# mod_sql.c moduleto use this
#LoadModule mod_sql_odbc.c

#LoadModule mod_radius.c
LoadModule mod_quotatab.c
#LoadModule mod_quotatab_file.c

# Install proftpd-mod-ldap to use this
#LoadModule mod_quotatab_ldap.c

# Install proftpd-mod-pgsql or proftpd-mod-mysql to use this
LoadModule mod_quotatab_sql.c
#LoadModule mod_quotatab_radius.c
#LoadModule mod_wrap.c
LoadModule mod_rewrite.c
LoadModule mod_load.c
LoadModule mod_ban.c
#LoadModule mod_wrap2.c
#LoadModule mod_wrap2_file.c
# Install proftpd-mod-pgsql or proftpd-mod-mysql to use this
#LoadModule mod_wrap2_sql.c
#LoadModule mod_dynmasq.c


# keep this module the last one
LoadModule mod_ifsession.c

#cuota tabs

nos falta el include_mysql.conf:
AllowStoreRestart 		on
AllowRetrieveRestart		on
RequireValidShell               off
PathDenyFilter 			"\\.ftp)|\\.ht)[a-z]+$" 
DefaultRoot 			~
DenyFilter 			\*.*/


# Set up authentication via SQL
# ===========
AuthOrder                       mod_sql.c
SQLAuthTypes			Backend
SQLConnectInfo       		proftpd_admin@localhost proftpd new159753
SQLUserInfo       		usertable userid passwd uid gid homedir shell 
SQLGroupInfo       		grouptable groupname gid members 
SQLUserWhereClause    		"disabled=0 and (NOW()<=expiration or expiration=-1 or expiration=0)"

# Log the user logging in
SQLLog PASS counter
SQLNamedQuery counter UPDATE "lastlogin=now(), count=count+1 WHERE userid='%u'" usertable

# logout log
SQLLog EXIT time_logout
SQLNamedQuery time_logout UPDATE "lastlogout=now() WHERE userid='%u'" usertable

# display last login time when PASS command is given
SQLNamedQuery login_time SELECT "lastlogin from usertable where userid='%u'"
SQLShowInfo PASS "230" "Last login was: %{login_time}"

# xfer Log in mysql
SQLLog RETR,STOR transfer1
SQLNamedQuery  transfer1 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'c', NULL" xfer_stat
SQLLOG ERR_RETR,ERR_STOR transfer2
SQLNamedQuery  transfer2 INSERT "'%u', '%f', '%b', '%h', '%a', '%m', '%T', now(), 'i', NULL" xfer_stat

# User quotas
# ===========
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

SQLDefaultUID   65534
CreateHome on 1770 uid 0 gid 0


### Shaper ###
TransferRate RETR 1000.0
TransferRate STOR 1000.0

reiniciamos nuestro proftpd /etc/init.d/proftpd restart
nuevamente accedemos al dominio  que asignamos a apache o http://localhost/proftpd_admin y debemos ir a configure > Filepaths saldrá:



en el campo who va: /usr/bin/who
en el campo ftpwho:
/usr/bin/ftpwho
en kernel configuration file:
/usr/src/linux-headers-2.6.32-5-amd64 (esto depende de tu kernel)
y finalmente proftpd:
/usr/sbin/proftpd

es probable que en  configure -> extensions->quota, nodeje habilitarlas; dirigete al archivo configuration.xml que esta en /var/www/eldominio y encuentra:


quota>
			0
			
			user
donde sale un 0 cambialo por un 1, y listo, la demas configuracion es intitutiva, la creación, modificación , asignación de reglas y quota,etc.
Francisco.



martes, 16 de agosto de 2011

Instalar Firefox Ux en linux

Instalar Firefox Ux en Debian squezze 64 bits

Vamos a instalar Firefox Ux, el nuevo Firefox de mozilla, para ello descargamos desde la pagina
https://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-ux/
Donde buscamos firefox-8.0a1.en-US.linux-x86_64.zip
Descargamos este archivo y luego lo descomprimimos:
$unzip firefox-8.0a1.en-US.linux-x86_64.zip
creara una carpeta firefox sta carpeta la movemos a /opt
#mv firefox /opt
para crear el lanzador podemos ocupar el comando:
$alacarte
nos mostrara una interfaz similar a esta:
nos vamos a internet y agregamos nuevo elemento el cual nos pedirá:
nombre: Firefox UX
comando:  /opt/firefox/firefox %u
comentarios: Firefox UX
ya tenemos nuetros Firefox UX en Debian Squeeze.
--
by NcW

Migrar desde Oscommerce a prestashop

Este un pequeño tuto de como migrar desde Oscommerce a Prestashop usando el modulo de prestashop import oscommerce v1.0 y no morir en el intento.
Requisitos:
- Tener instalado Prestashop
- tu pagina con oscommerce con Base de Datos Mysql (ya que la migración la hice sobre esta).
-
Paso 1:

entra al panel de administración de Prestashop , dirigirse a Módulos, e instalar
- import Oscommerce
- import de Tienda
como sale en la siguiente imagen:




Paso 2:
Como se muestra en la imagen superior deber seleccionar el link configurar del modulo import de tienda
lo cual te llevara a una pagina como esta:



donde debes elegir Oscommerce (que la unica opción que me salia a mi xd)

Paso 3:
Ingresar Datos de Oscommerse, ojo con la ip o el dominio que quieras colocar, por ejemplo; debes colocar la ip donde esta alojada la DB Mysql de Oscommerce, es decir, si la pagina del prestashop esta alojada en el mismo servidor donde esta la DB Mysql, debes poner localhost o 127.0.0.1, sino la ip que corresponda.


Paso 4:

Una vez que le damos Etapa siguiente
entramos a opciones de migración donde puedes elegir lo que deseas llevar a prestashop.
puede que abajo te diga que no has definido el idioma y/o la moneda, esto lo tienes que hacer en el mismo prestashop.
Muestro la configuración que ocupe:
hasta aca llega el tuto, los posibles errores que puedas encontrar al migrar generalmente son por tipo de DB
ya sea mysql o inndb,etc tambien por campos vacios en las tablas, por caracteres no validos p/e: la "Ñ"

Saludos

martes, 2 de agosto de 2011

IP estática en Debian squeeze

Para obtener ip estática en Debian 6 o Squeeze se debe realizar el siguiente procedimiento:
1.- bajar la interface a asignar ip estatica (eth0/eth1/ath0/ath1) en este caso eth0
# ifdown eth0
2.- modificar archivo /etc/networks/interfaces con algún editor de texto.
# vi /etc/networks/interfaces
dentro del archivo tendremos algo como esto:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0 <-- comentamos esta linea anteponiento un #
iface eth0 inet dhcp <-- comentamos esta linea anteponiento un #

y agregamos al final del archivo:


iface eth0 inet static
address 192.168.1.200 <-------- aca va la IP que pondrás
netmask 255.255.255.0 <-------- depende de el tipo de red y la ip.
gateway 192.168.1.1 <--------- esa es la puerta de enlace predetermina la ip y la red.

3.- Asignar los DNS
#vi /etc/resolv.conf
dentro de este archivo ingresas los DNS que generalmente corresponde a la gateway, en este caso "192.168.1.1" pero para caso practico, vamos a usar los del google, ingresas:

nameserver 8.8.8.8
nameserver 8.8.4.4

4.- levantamos la tarjeta
ifup eth0

Si, no llegase a tomarte la red de inmediato, reinicias la red
#/etc/init.d/network restart

--
Saludos
Ncw




domingo, 24 de julio de 2011

Instalar Drivers Nvidia Debian 6 de 64 bits

Para instalar los drivers Nvidia 64 bits en nuestro Debian squeeze debemos irnos a la pagina oficial de Nvidia y bajar el driver que corresponda


La instalacion de los drivers comprende compilar estos mismo, para ello nos descargamos:
# aptitude install build-essential automake make checkinstall dpatch patchutils autotools-dev debhelper quilt fakeroot xutils lintian cmake dh-make libtool autoconf git-core subversion
Instalamos los headers
# aptitude install gcc linux-headers-$(uname -r)
Debian asigna un modulo de los drivers ha nuestra tarjeta nvidia llamado nouveau, por ende antes de iniciar nuestra instalación del driver privativo debemos eliminar el modulo y archivos:
# apt-get remove xserver-xorg-video-nouveau
Removido el driver, nos aseguramos y lo eliminamos de la lista modprobe, puede ser usando nano, vi,gedit,kate, etc. En este caso mi favorito vi:
#vi /etc/modprobe.d/blacklist.conf
Adimos las siguiente lineas :
#Driver nouveau
blacklist nouveau
Guardamos y ahora presionamos CTRL+ALT+F1 se nos abre una consola y paramos el entorno grafico:
para Gnome:
# /etc/init.d/gdm3 stop
para Kde:
# /etc/init.d/kdm stop
Nos vamos a nuestro archivo descargado de la pagina oficial de nvidia que deberia ser en formarto .run
le damos permiso de ejecución:
# chmod 755 NVIDIA-Linux-x*****.run
ejecutamos con
#sh NVIDIA-Linux-x*****.run

seguimos los pasos,bastante sencillo por lo demas, acotar que posiblemente nos diga que el cc no corresponde a la version, pero le damos continuar.

alfinal reiniciamos y Listo :D
Saludos
NcW

viernes, 22 de abril de 2011

Libreria Jpgraph con Mysql en PHP

Desarrollando una aplicacion Web me tope con una librería capaz de graficar los puntos que le demos con diferentes formas de mostrar estadísticas.
la librería se llama jpgraph
la puedes obtener desde


bueno vamos al grano, la idea que quiero presentar es : obtener datos desde una BD Mysql

y poder realizar una estadística

las variables donde se guarda los puntos son :

$datay1,$datay2,$datay3, $datayN, etc ...

bueno para que me entiendan coloco el code de uno de los ejemplos que trae la librería:

SetScale("textlin");

$graph->SetMargin(200,200,200,200);

$theme_class=new VividTheme;




$graph->yaxis->HideZeroLabel();

$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');

$graph->xgrid->Show();

$graph->SetTheme($theme_class);

$graph->img->SetMargin(80,30,30,40);

$graph->title->Set('Mensajes BPServer');

$graph->yaxis->title->SetFont(FF_FONT2,FS_BOLD);

$graph->xaxis->title->Set('Hora');

$graph->yaxis->title->Set('Mensajes'); // nombre del eje Y plano cartesiano

$graph->SetBox(false);




$graph->yaxis->title->SetFont( FF_FONT1 , FS_BOLD );

$graph->xaxis->title->SetFont( FF_FONT1 , FS_BOLD );

$graph->img->SetAntiAliasing(true);




$graph->yaxis->HideZeroLabel(true);

$graph->yaxis->HideLine(false);

$graph->yaxis->HideTicks(false,false);




$graph->xgrid->Show();

$graph->xgrid->SetLineStyle("solid");

$graph->xaxis->SetTickLabels(array('06:00','','08:00','','10:00','','12:00','','14:00','','16:00','','18:00','','20:00','','22:00'));

$graph->xgrid->SetColor('#E3E3E3');




// Create the first line

$p1 = new LinePlot($datay1);

$graph->Add($p1);

$p1->SetColor("#9495ED");

$p1->SetLegend('READ');







// Create the second line

$p2 = new LinePlot($datay2);

$graph->Add($p2);

$p2->SetColor("#B25522");

$p2->SetLegend('SENT');




// Create the third line

$p3 = new LinePlot($datay3);

$graph->Add($p3);

$p3->SetColor("#FF1493");

$p3->SetLegend('T001');




// Create the fourth line

$p4 = new LinePlot($datay4);

$graph->Add($p4);

$p4->SetColor("#FF1441");

$p4->SetLegend('T002');



$graph->legend->SetFrameWeight(3);



// Output line

$graph->Stroke();
?>

un ejemplo sencillo y completo.

ahora veremos un ejemplo mas practico y de un nivel un poco mas elevado

la idea sera:
- Obtener la cantidad de ocurrencias para los registros de SENT,READ,TO01 yTO02 que esten entre los rangos 60000 y 220000 dentro de la base de datos, cabe destacar que 60000 y 220000 corresponde horas, es decir 60000 es igual a 6:00 como 220000 es a 22:00 Hrs (para mayor comodidad del lector).

cod3:

require('jpgraph/jpgraph.php');
require('jpgraph/jpgraph_line.php');

$matriz[1]="\"READ\"";
$matriz[2]="\"SENT\"";
$matriz[3]="\"TO01\"";
$matriz[4]="\"TO02\"";
$table=$_SESSION['table'];
$conexion=mysql_connect($server, $user, $pass) or
die("Error en conexion con motor".mysql_error());
mysql_select_db($bbdd,$conexion) or
die("Fallo al selecionar la BBDD");
//array para read sent TO01 y TO02
$i=0;

foreach($matriz as $key => $value){
$x=1;
for($i=60000;$i<=220000;$i=$i+10000){
$aux=$i+10000;
$x++;
$consulta=mysql_query("Select count(*) as total from ".$table." where hora >".$i." and hora < ".$aux." and status =".$value,$conexion); // sumatoria de las ocurrencias

if ($file = mysql_fetch_array($consulta)){
// asignando resultados
if($key==1)
$datay1[$x] = $file["total"];
if($key==2)
$datay2[$x] = $file["total"];
if($key==3)
$datay3[$x] = $file["total"];
if($key==4)
$datay4[$x] = $file["total"];
}
}
}
...setup graph ...

de esta manera obtenemos podemos obtener lo siguiente:



domingo, 9 de enero de 2011

start wars episodio IV en ascii

el episodio IV de start wars en ascii
solo abren una terminal yle dan

telnet towel.blinkenlights.nl

y para los niños de winbugs(windows)

abren inicio->ejecutar y escriben

cmd /k telnet towel.blinkenlights.nl

listo :B

SPAM desde ip validas

este es un pequeño script creado para poder enviar correos masivos desde cuentas se servidores smtp validos ; por ejemplo el siguiente es de gmail.com usando el comando sendEmail

debes tener un archivo llamado usuarios.txt con la estructura mail@gmail.com clave
donde pondras todas las cuentas reales de gmail que tienes .. es decir

tuusuario1@gmail.com clave1
tuusuario2@gmail.com clave2


la lista de correos se pasa como primer argumento del comando
tiene que ser un texto plano y nada mas (el script se encarga de sacar los correos de cualquer texto que le entreges creando un archivo lista.txt )

como prerequisito se debe tener el script sendEmail (ojo no es el smtp sendmail)
desde debian u deribados

sudo aptitude install sendemail

desde opensuse

zypper in sendemail

ejemplos de utilizacion del script

$ sh spam.sh /home/tuuser/listadecorreos /home/tuuser/mensaje.html

el mensaje puede ser un html, recalco que el mail nosera enviado a spam ya que estamos usando una cuenta gmail .

uno de los inconvenientes de este script es que como el server gmail permite enviar 500 mails cada 24 hrs . tendriamos que tener varias cuentas para enviar 5000. pero se viene spam.sh
version 2 donde aprovechamos un server publico para enviar correos ilimitados sin problemas con envios a spam :B
les dejo la descarga de script y el codigo

http://goo.gl/Umzkj



#!/bin/bash
# MailSpam V 0.1
# Autor: Francisco Cespedes
# Script mandar mails masivos con cuentas reales
# server usado gmail
# --argumentos --
# el primer argumento es la direccion de un archivo que contiene correos en un texto plano
# version beta .. configurar archivos usuarios. separados por cantraseña y password
# ejemplo usuario@gmail.com clave
#-------------------
SERVER="smtp.gmail.com:587"
MENSAJE=$(cat -s $2) # para incluir mensaje agregar -m a sedemail
ASUNTO="el asunto"
ADJUNTO="" # adjuntar con -a y direccion completa del archivo

# separa los correos que existan de cualquer texto plano.
grep -Eio '[a-z0-9._-]+@[a-z0-9.-]+[a-z]{2,4}' $1 |sort |uniq > lista.txt
# bucle que envia los correos separados por mail.
# -- deben ser 2 bucles uno para el correo del cual se van a enviar los correos
# -- y otro con los correos destinarios
CONTADOR=0
while read line
do
CORREO=$(echo $line | gawk '{print $1}')
PASSWORD=$(echo $line | gawk '{print $2}' )
USUARIO=$(echo $CORREO |gawk '{print $1}' FS="@" )

while read line2
do
let CONTADOR+=1
sendEmail -f $CORREO -t $line2 -s $SERVER -o tls=yes -xu $USUARIO -u $ASUNTO -xp $PASSWORD -m $MENSAJE
if [ $CONTADOR -eq 499 ]; then
break
fi
done < lista.txt
echo "siguiente usuario: " $CORREO
let CONTADOR=0
done < usuarios.txt
done < usuarios.txt