Esta línea para Unix buscará y pedirá confirmación para borrar todos los archivos *.xxx que encuentre a partir del path indicado, buscando en carpetas y subcarpetas:
find /some/path -name \*.xxx -ok rm {} \;
jueves, enero 19, 2006
miércoles, enero 18, 2006
Ganando un poco de rendimiento en los accesos a disco
En linux, por defecto con el filesystem ext3 se escribirá en disco información de cuándo se accedió por última vez a un archivo. Podemos desactivar esto para ganar eficiencia ahorrándonos escrituras cuando sólo queremos leer.
A?adiremos el atributo 'noatime' a las particiones que queramos en /etc/fstab
# nano /etc/fstab
LABEL=/ / ext3 defaults,usrquota,grpquota,noatime 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/home /home ext3 defaults,usrquota,grpquota,noatime 1 2
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=/tmp /tmp ext3 defaults,noatime 1 2
LABEL=/usr /usr ext3 defaults,noatime 1 2
LABEL=/var /var ext3 defaults,usrquota,grpquota,noatime 1 2
LABEL=SWAP-sdb2 swap swap defaults 0 0
No hace falta reiniciar para que los cambios surtan efecto. Si hemos a?adido 'noatime' en / /home /var /usr y /tmp, pondremos:
# mount -oremount /
# mount -oremount /home
# mount -oremount /var
# mount -oremount /usr
# mount -oremount /tmp
Y para comprobar que está todo ok vemos el estado actual de los mount con este comando:
# cat /proc/mounts
A?adiremos el atributo 'noatime' a las particiones que queramos en /etc/fstab
# nano /etc/fstab
LABEL=/ / ext3 defaults,usrquota,grpquota,noatime 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
LABEL=/home /home ext3 defaults,usrquota,grpquota,noatime 1 2
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=/tmp /tmp ext3 defaults,noatime 1 2
LABEL=/usr /usr ext3 defaults,noatime 1 2
LABEL=/var /var ext3 defaults,usrquota,grpquota,noatime 1 2
LABEL=SWAP-sdb2 swap swap defaults 0 0
No hace falta reiniciar para que los cambios surtan efecto. Si hemos a?adido 'noatime' en / /home /var /usr y /tmp, pondremos:
# mount -oremount /
# mount -oremount /home
# mount -oremount /var
# mount -oremount /usr
# mount -oremount /tmp
Y para comprobar que está todo ok vemos el estado actual de los mount con este comando:
# cat /proc/mounts
martes, enero 17, 2006
PHP sobre Linux y AMD Opteron64
Andaba yo montando un servidor web sobre un AMD Opteron64...
Para ver que todo estaba OK con respecto al PHP, pruebo a sacar la versión de PHP y escupe errores:
# php -v
PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/ldap.so' - /usr/lib/php4/ldap.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/mysql.so' - /usr/lib/php4/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
Parece que no encuentra esas librerías, así que intento ver dónde están realmete.
# locate ldap.so
warning: locate: could not open database: /var/lib/slocate/slocate.db: No such file or directory
warning: You need to run the 'updatedb' command (as root) to create the database.
Please have a look at /etc/updatedb.conf to enable the daily cron job.
Hay hacer primero un 'updatedb' para poder usar 'locate'
# updatedb
Y repetimos...
# locate ldap.so
/usr/lib64/libnss_ldap.so
/usr/lib64/autofs/lookup_ldap.so
/usr/lib64/libuser/libuser_ldap.so
*** /usr/lib64/php4/ldap.so ***
/lib64/security/pam_ldap.so
/lib64/libnss_ldap.so.2
Vaya por dios, hemos instalado la versión 64 bits del sistema operativo, para aprovechar el Opteron, así que es /usr/lib64/php4 y no /usr/lib/php4
Actualizamos /etc/php.ini
# nano /etc/php.ini
Y cambiamos:
; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/lib/php4"
por:
extension_dir = "/usr/lib64/php4"
Y ahora ya funciona bien si hacemos:
# php -v
Para ver que todo estaba OK con respecto al PHP, pruebo a sacar la versión de PHP y escupe errores:
# php -v
PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/ldap.so' - /usr/lib/php4/ldap.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php4/mysql.so' - /usr/lib/php4/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
Parece que no encuentra esas librerías, así que intento ver dónde están realmete.
# locate ldap.so
warning: locate: could not open database: /var/lib/slocate/slocate.db: No such file or directory
warning: You need to run the 'updatedb' command (as root) to create the database.
Please have a look at /etc/updatedb.conf to enable the daily cron job.
Hay hacer primero un 'updatedb' para poder usar 'locate'
# updatedb
Y repetimos...
# locate ldap.so
/usr/lib64/libnss_ldap.so
/usr/lib64/autofs/lookup_ldap.so
/usr/lib64/libuser/libuser_ldap.so
*** /usr/lib64/php4/ldap.so ***
/lib64/security/pam_ldap.so
/lib64/libnss_ldap.so.2
Vaya por dios, hemos instalado la versión 64 bits del sistema operativo, para aprovechar el Opteron, así que es /usr/lib64/php4 y no /usr/lib/php4
Actualizamos /etc/php.ini
# nano /etc/php.ini
Y cambiamos:
; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/lib/php4"
por:
extension_dir = "/usr/lib64/php4"
Y ahora ya funciona bien si hacemos:
# php -v
Suscribirse a:
Entradas (Atom)