Re: programa de copia de seguridad
On Tuesday 02 December 2003 13:04, Antonio Castro wrote:
> On Mon, 1 Dec 2003, Ramiro Aceves wrote:
> > Hola amigos.
> >
> > Animado por la interesante discusión, instalé afio pero no logro que me
> > funcione correctamente para grabar en un CD con cdrecord tal y como dice
> > la página del man. Una vez grabado el CD, al tratar de verificarlo con
> > afio -r /dev/scd1, funciona bien pero al llegar los últimos archivos da
> > error. ?Alguien me puede pasar exactamente el comando en vuestro sistema?
> > Yo hacía (sin comprimir):
> >
> > find . -depth -print0 | afio -oxv0 -b 2048 -s 325000x '!cdrecord -v
> > speed=4 dev=0,1,0 -'
> >
> > Luego, verificaba con
> > afio -rv /dev/scd1
>
> Si tienes CDs regrabables puede que tengas que hacer unas cuantas
> pruebas. parece que en este ejemplo afio es informado de
> entregar la información por bloques pero que pasa con el
> último bloque ? Si el último bloque no se llena quizas no
> lo entregue y naturalmente cdrecord no grabará el último
> bloque. Se pueden intentar varias cosas:
>
> a) Verifica con isoinfo el tamaño tehorico del sistema de ficheros
> y comparalos con el número de bytes grabados. El número de bytes
> grabados debe ser igual o mayor que el valor entregado por isoinfo.
>
> b) En lugar de grabar al vuelo grabar primero la imagen en disco y
> luego pasarla a CD.
>
> c) Mirate el man de cdrecord y haz que grabe algunos bytes de más
> al final, aunque creo que es eso lo que hace por defecto.
>
> b) Create un fichero basura suficientemente grande y lo pasas como
> último nombre a afio.
>
> find . -depth -print0 > /tmp/find.out
> head --bytes=2048k < /dev/zero > /tmp/head.out
> echo /tmp/head.out >> /tmp/find.out
> cat /tmp/find.out | afio -oxv0 -b 2048 -s 325000x '!cdrecord ...
>
> > No sé si es correcto, porque con este "megacomando" cualquiera se
> > confunde :-)
> > No estoy muy convencido de la parte final del comando.
> > He probado con CDRW nuevos y me da el mismo resutado.
>
> Estupendo probar con CDRW es lo adecuado en estos casos.
>
> Yo creo que con lo que te cuento seguro que logras hacerlo
> funcionar y deberías comprobar que tal se comporta la solución
> elegida en multivolumen. Creo que la complicación del comando
> merece la pena si logras un buen comportamiento en multivolumen.
>
> En realidad lo de -b 2048 -s 325000x parece pensado para el
> tratamiento de CDs de 650Mbytes no ?
>
> Tampoco te fies de lo que yo te cuento. Son ideas. Repasa los man
> de afio y de cdrecord y asegurate de los tamaños de bloques y cosas
> así. O eso o espera a que alguien te de la receta ya terminada. :-)
>
>
> --
> Un saludo
> Antonio Castro
>
> /\ /\ Ciberdroide Informática
> \\W// << http://www.ciberdroide.com >>
> _|0 0|_
> +-oOOO-(___o___)-OOOo---------------------+
>
> | . . . . U U . Antonio Castro Snurmacher |
> | . . . . . . . acastro@ciberdroide.com |
>
> +()()()---------()()()--------------------+
Vi este articulo y supuse que te puede servi, bueno, me tome mi tiempo para
pasarlo. es sobre samba pero tiene la parte de grabacion de Cd que te puede
ineteresar. (disculpen errores de tipeo)
saludos.
andres dv.
Articulo
Pseudoimpresoras Samba
Por Roderick W. Smith
Revista Linix Magazine (edicion española)
listado 2: definicion de una comprticion grabadora de CD-R
[smbcdr]
comment = Create a CD-R
path = /var/spool/samba
printable = Yes
max connections = 1
print command = /usr/local/bin/smbcdr %H %s %U /var/spool/samba
Listado 3: El script smbcdr tuesta ficheros en CD-Rs
#!/bin/sh
HomeDir=$1
ArchiveFilename=$2
Username=$3
SharePach=%4
TempPatch=/tmp/cdr/$ArchiveFilename
MaxCdrSize=665600
mkdir -p $TempPath
cd $TempPath
unzip $/SharePach/$ArchiveFilename
rm $/SharePach/$ArchiveFilename
# Comprobar el tamaño del CD-R
CdrSize='du -sk $TempPath | cut -f 1'
if [ $CdrSize -lt $MaxCdrSize ]
then
mkisofs -J -r -o $Homedir/image-$ArchiveFilename.iso \
-log-file /tmp/$ArchiveFilename ./
cdrecord speed=2 dev=4,0 $Homedir/image-$ArchiveFilename.iso
cat /tmp/$ArchiveFilename | mail -s "CD-R Creation finished" \
$Username
rm $Homedir/image-$ArchiveFilename.iso /tmp/$ArchiveFilename
else
mail -s "Too many files to burn CD-R ($CdrSize kilobytes)!" \
$Username
fi
cd ..
rm -r $TempPath
Articulo de la revista
Grabacion de CR-Rs
Las grabadoras cd CRs hoy en dia son bastante comunes, pero para nasa
universales. Muchos equipos siguen sin teneer estos dipositivos. En una red
pequeña, es muy posible que solamente una maquina disponga de uno, pero
deseamos que todos los usuarios puedan acceder a el. Una manera de
conseguirlo es de utilizar una pseudo-impresora compartida Samba para
automatizar el proceso de creacion CD-Rs-
En el Listado 2 podemos ver una configuracion de pseudo-impresora compartida
Samba que, en conjuncion con el script mostrado en LISTADO ·; CREAN UN CDR a
partir de u ficheros almacenados en un archovo zip que proviene del cliente
(tal y como ocurria en el Listado 1, el Listado 2 forma parte de un fichero
smb.conf mas largo). Añadimos el Listado 2 a nuestro smb.conf y copiemos el
Listado 3 a un archivo que guardamos en /usr/bin/smbcdr. Le daremos permiso
de ejecucion a este ultimo archivo teclando "chmod a+x /usr/bin/smbcdr".
Deberemos re-arrancar Samba para hacer accesible la impresora compartida.
Como se puede observar, la seccion de Samba no es my compleja, aunque pasa
variables al script que utiliza para tostar el CD (con Samba 2.0x podemos
pasarle la variable %P en ver del directorio persona de la comparticion, pero
en las versiones 2.2x, %P no funciona en este contexto). La mayoria del
trabajo se lleva a cabo en el script smbcdr que se muestra en el Listado 3.
Este script hace varias cosas:
+ Primero establece el nombre del directorio temporal que contendra los
ficheros a tostar y establece la variable %MaxCdrSize al maximo tamaño del
CD-R en Kilobytes.
El Listado 3 supone un CD-R de 650 MB.
* El script monta un directorio ara contener los ficheros CD-R descomprime el
archivo que recibe del directorio del cliente. El Script tambien elimina el
fichero archivo original.
* El script calcula el tamaño de los ficheros en el directorio de contenido
CD-R y asigna ese calor a la variable $CdrSize.
* El script utiliza el tamaño computado de los archivos para determinar si
debe o no tostar el CD. Si los ficheros caben en el CD, el Script crea una
imagen utilizando mkisofs y a continuacion tosta la imagen en el CD
utilizando cdrecord. No hemos de olvidar configurar la instruccion cdrecord
para que se adapte a nuestro sistema. Debemos ajustar el valor de la
velocidad a algo apropiado para nuestra grabadora y establecer el SCSI ID de
la grabadora con el parametro dev.
Esta configuracion, o algo muy parecido, deberia funcionar para la mayoria de
los sistemas Linux que tienen grabadoras CD-R(W). Sin enbargo, debemos
establecer el binario cdrecord a SUID root (escribiendo chmod o+s
/usr/bin/cdrecord funciona en la mayoria de los sistemas). Tambien se puede
utilizar force user en la definicion de comparticion Samba para establecer el
nombre de usuario a alguno que pueda correr cdrecord.
Una cosa para tener en cuenta que es muy importante es que el servidro Samba
ha de tener una cantidad adecuada de espacio en disco de los directorios
criticos. El Listado 2 y 3 almacenan ficheros temporales potencialmente muy
grandes en /VAR/spool/samba, /tmp y en el directorio personal del usuario. Se
puede cambiar las localizaciones de los directorios a cualquier sitio donde
se tenga espacio en el sistema , pero en todo caso se ha de tener sitio
suficiente como para almacenar el equivalente a dos CDs enteros de datos.
etc...
Reply to: