Hola buenas tardes, estoy intentando hacer una copia de seguridad con "rsync" a un disco duro externo usb 3.0 de dos teras de capacidad. para ello utilizo el siguiente script #!/bin/bash # creamos una variable que contine la fecha y hora de ejecución fecha=`date | awk '{print $1 "_" $2 "_" $3 "_" $4 "_" $6}'` # ejecutamos la sincronización y guardamos el resultado en un fichero utilizando la variable de antes # para que sea distinto cada vez /usr/bin/rsync -auvh --stats --delete-excluded /home/nacho/abuelos /run/media/nacho/My Passport/Seguridad y esta es la respuesta que obtengo nacho@localhost:~/perl> perl copia2 copia2: línea 1: #!/bin/bash: No existe el fichero o el directorio sending incremental file list rsync: link_stat "/run/media/nacho/My" failed: No such file or directory (2) rsync: mkdir "/home/nacho/perl/Passport/Seguridad" failed: No such file or directory (2) rsync error: error in file IO (code 11) at main.c(664) [Receiver=3.1.3] parece que el error radica en la denominación de la unidad exterior, cuando en el script la llamo "My Passport", la respuesta a la ejecución del script es solo Passport alguien que me pueda ayudar, gracias.
On 2022-03-07 15:59, Ignacio de Juan wrote:
Hola buenas tardes, estoy intentando hacer una copia de seguridad con "rsync" a un disco duro externo usb 3.0 de dos teras de capacidad.
para ello utilizo el siguiente script
#!/bin/bash # creamos una variable que contine la fecha y hora de ejecución fecha=`date | awk '{print $1 "_" $2 "_" $3 "_" $4 "_" $6}'`
# ejecutamos la sincronización y guardamos el resultado en un fichero utilizando la variable de antes # para que sea distinto cada vez /usr/bin/rsync -auvh --stats --delete-excluded /home/nacho/abuelos /run/media/nacho/My Passport/Seguridad
No veo que el script use la variable "fecha" que has creado.
y esta es la respuesta que obtengo
nacho@localhost:~/perl> perl copia2
¿Que pinta aquí el perl? El script que has puesto arriba es de bash. -- Cheers / Saludos, Carlos E. R. (from 15.3 x86_64 at Telcontar)
El 7/3/22 a las 19:27, Carlos E. R. escribió:
On 2022-03-07 15:59, Ignacio de Juan wrote:
Hola buenas tardes, estoy intentando hacer una copia de seguridad con "rsync" a un disco duro externo usb 3.0 de dos teras de capacidad.
para ello utilizo el siguiente script
#!/bin/bash # creamos una variable que contine la fecha y hora de ejecución fecha=`date | awk '{print $1 "_" $2 "_" $3 "_" $4 "_" $6}'`
# ejecutamos la sincronización y guardamos el resultado en un fichero utilizando la variable de antes # para que sea distinto cada vez /usr/bin/rsync -auvh --stats --delete-excluded /home/nacho/abuelos /run/media/nacho/My Passport/Seguridad
No veo que el script use la variable "fecha" que has creado. Pues bien, yo se poco de esto, el script me lo paso mi hermano que sabe un poco mas, tampoco se para que, lo hace, funciona y para mi es suficiente, a lo mejor si quito lo de la variable sigue funcionando.....
y esta es la respuesta que obtengo
nacho@localhost:~/perl> perl copia2
¿Que pinta aquí el perl? El script que has puesto arriba es de bash.
Tampoco lo se, la cuestion es que si en una ventana de Konsole tecleo solamente "copia2" no hace nada, pero si lo hago "perl copia2" hace lo que quiero que haga..... Yo lo uso con "tareas progamadas" y si en la orden del programa no pongo "perl" no funciona...... Gracias.
On 2022-03-07 20:19, Ignacio de Juan wrote:
El 7/3/22 a las 19:27, Carlos E. R. escribió:
On 2022-03-07 15:59, Ignacio de Juan wrote:
Hola buenas tardes, estoy intentando hacer una copia de seguridad con "rsync" a un disco duro externo usb 3.0 de dos teras de capacidad.
para ello utilizo el siguiente script
#!/bin/bash # creamos una variable que contine la fecha y hora de ejecución fecha=`date | awk '{print $1 "_" $2 "_" $3 "_" $4 "_" $6}'`
# ejecutamos la sincronización y guardamos el resultado en un fichero utilizando la variable de antes # para que sea distinto cada vez /usr/bin/rsync -auvh --stats --delete-excluded /home/nacho/abuelos /run/media/nacho/My Passport/Seguridad
No veo que el script use la variable "fecha" que has creado. Pues bien, yo se poco de esto, el script me lo paso mi hermano que sabe un poco mas, tampoco se para que, lo hace, funciona y para mi es suficiente, a lo mejor si quito lo de la variable sigue funcionando.....
y esta es la respuesta que obtengo
nacho@localhost:~/perl> perl copia2
¿Que pinta aquí el perl? El script que has puesto arriba es de bash.
Tampoco lo se, la cuestion es que si en una ventana de Konsole tecleo solamente "copia2" no hace nada, pero si lo hago "perl copia2" hace lo que quiero que haga.....
Yo lo uso con "tareas progamadas" y si en la orden del programa no pongo "perl" no funciona......
Pff... No le has dado permiso de ejecución al script. -- Cheers / Saludos, Carlos E. R. (from 15.3 x86_64 at Telcontar)
Hola. O luns, 7 de marzo de 2022 21:28:53 CET Carlos E. R. escribiu:
On 2022-03-07 20:19, Ignacio de Juan wrote:
El 7/3/22 a las 19:27, Carlos E. R. escribió:
On 2022-03-07 15:59, Ignacio de Juan wrote:
Hola buenas tardes, estoy intentando hacer una copia de seguridad con "rsync" a un disco duro externo usb 3.0 de dos teras de capacidad. para ello utilizo el siguiente script
Si no tienes mucha experiencia en el uso del terminal, tienes kup y kbackup para estas cosas. Funcionan igual, son fáciles como el mecanismo de un chupete, etc. Si lo que quieres es aprender algo del terminal, bien:
#!/bin/bash # creamos una variable que contine la fecha y hora de ejecución fecha=`date | awk '{print $1 "_" $2 "_" $3 "_" $4 "_" $6}'`
# ejecutamos la sincronización y guardamos el resultado en un fichero utilizando la variable de antes # para que sea distinto cada vez /usr/bin/rsync -auvh --stats --delete-excluded /home/nacho/abuelos /run/media/nacho/My Passport/Seguridad
Como ves, el que hizo el script te dice "utilizando la variable de antes para que sea distinto cada vez", pero realmente en la línea "que hace las cosas" no se utiliza la variable. Sin embargo, en mi opinión usar rsync con esa variable no tiene sentido. Rsync copia los ficheros nuevos o que hayan sido modificados desde la última vez. Así que yo borraría eso de fecha... Si lo que quieres es tener carpetas con la fecha de cada copiado, supongo que podrías hacer algo como mkdir /run/media/nacho/My\ Passport/Seguridad/$fecha Antes de la copia y después de lo de fecha=...
No veo que el script use la variable "fecha" que has creado.
Pues bien, yo se poco de esto, el script me lo paso mi hermano que sabe un poco mas, tampoco se para que, lo hace, funciona y para mi es suficiente, a lo mejor si quito lo de la variable sigue funcionando.....
y esta es la respuesta que obtengo
nacho@localhost:~/perl> perl copia2
¿Que pinta aquí el perl? El script que has puesto arriba es de bash.
Tampoco lo se, la cuestion es que si en una ventana de Konsole tecleo solamente "copia2" no hace nada, pero si lo hago "perl copia2" hace lo que quiero que haga.....
Yo lo uso con "tareas progamadas" y si en la orden del programa no pongo "perl" no funciona......
Pff... No le has dado permiso de ejecución al script.
O dicho de otra forma, puedes ejecutarlo poniendo sh (bash) en lugar de perl. Lo suyo con las cosas que funcionan es darles permisos de ejecución y ponerlos en un lugar adecuado. Salud!!
El 8/3/22 a las 13:59, karlggest escribió:
Si no tienes mucha experiencia en el uso del terminal, tienes kup y kbackup para estas cosas. Funcionan igual, son fáciles como el mecanismo de un chupete, etc.
Si lo que quieres es aprender algo del terminal, bien:
Bueno llevo años en esto pero sin aprender mucho, hago lo poco que puedo y lo que necesito lo pregunto por aqui, si aprendo algo pues bien esta.
Como ves, el que hizo el script te dice "utilizando la variable de antes para que sea distinto cada vez", pero realmente en la línea "que hace las cosas" no se utiliza la variable.
Sin embargo, en mi opinión usar rsync con esa variable no tiene sentido. Rsync copia los ficheros nuevos o que hayan sido modificados desde la última vez. Así que yo borraría eso de fecha...
Si lo que quieres es tener carpetas con la fecha de cada copiado, supongo que podrías hacer algo como
mkdir /run/media/nacho/My\ Passport/Seguridad/$fecha
Antes de la copia y después de lo de fecha=...
O dicho de otra forma, puedes ejecutarlo poniendo sh (bash) en lugar de perl. Lo suyo con las cosas que funcionan es darles permisos de ejecución y ponerlos en un lugar adecuado.
Salud!!
Si, creo que voy a borrar las lineas que hacen la variable..... y no es necesario tener las carpetas con fecha de copiado, pero gracias por la idea. eso de poner sh, que quieres decir exactamente. lo pongo dentro del script o te refieres a cuando doy la orden en un terminal..... Gracias.
Hola!! O martes, 8 de marzo de 2022 20:12:30 CET Ignacio de Juan escribiu:
El 8/3/22 a las 13:59, karlggest escribió:
Si no tienes mucha experiencia en el uso del terminal, tienes kup y kbackup para estas cosas. Funcionan igual, son fáciles como el mecanismo de un chupete, etc.
Si lo que quieres es aprender algo del terminal, bien:
Bueno llevo años en esto pero sin aprender mucho, hago lo poco que puedo y lo que necesito lo pregunto por aqui, si aprendo algo pues bien esta.
Bien. Aquí una sitio para empezar: https://es.opensuse.org/SDB:Funtamentos_de_bash No incluye programación de scripts ni nada así (se menciona de pasada)
Como ves, el que hizo el script te dice "utilizando la variable de antes para que sea distinto cada vez", pero realmente en la línea "que hace las cosas" no se utiliza la variable.
Sin embargo, en mi opinión usar rsync con esa variable no tiene sentido. Rsync copia los ficheros nuevos o que hayan sido modificados desde la última vez. Así que yo borraría eso de fecha...
Si lo que quieres es tener carpetas con la fecha de cada copiado, supongo que podrías hacer algo como
mkdir /run/media/nacho/My\ Passport/Seguridad/$fecha
Antes de la copia y después de lo de fecha=...
O dicho de otra forma, puedes ejecutarlo poniendo sh (bash) en lugar de perl. Lo suyo con las cosas que funcionan es darles permisos de ejecución y ponerlos en un lugar adecuado.
Salud!!
Si, creo que voy a borrar las lineas que hacen la variable..... y no es necesario tener las carpetas con fecha de copiado, pero gracias por la idea.
Al menos si lo que has puesto es TODO el código. Tal y como está no la estás utilizando.
eso de poner sh, que quieres decir exactamente.
sh es un enlace simbólico (un acceso directo) a bash, que es el intérprete de comandos que usamos todos y con el que comienzas tu script: /bin/bash. Si pones otro intérprete por lo que sea, basta con que sh apunte a tu intérprete y todo funcionará guay ;) aunque la mayoría no lo cambiamos jamás. Al usar "bash mi_script.sh" lo que haces es decirle a bash que ejecute el script que hay en mi_script.sh. En tu caso, el script creo que le llamas "copia2"
lo pongo dentro del script o te refieres a cuando doy la orden en un terminal.....
En el terminal. En el script tienes una línea que dice que es un script de bash: #!/bin/bash Esa línea lo que hace es decir que eso es un script para ejecutar con bash. Si en un terminal haces: File copia2 Te devolverá algo como: copia2: Bourne-Again shell script, ASCII text executable Más arriba dices que tiene la "x" en "ejecutable"; si es correcto, no tienes que usar el propio intérprete para que lea el fichero y lo ejecute, puedes ejecutarlo directamente. ¿Cómo? Si está en mi carpeta perl, accedes a perl y haces: ./copia2 También podrías copiarlo en una carpeta "de ejecutables", como /usr/local/bin/ (necesitarás sudo) o bien puedes modificar tu path para añadir alguna carpeta diferente donde poner tus cosas.
Gracias.
Salud!!
On 2022-03-08 13:59, karlggest wrote:
Hola.
O luns, 7 de marzo de 2022 21:28:53 CET Carlos E. R. escribiu:
On 2022-03-07 20:19, Ignacio de Juan wrote:
El 7/3/22 a las 19:27, Carlos E. R. escribió:
On 2022-03-07 15:59, Ignacio de Juan wrote:
Hola buenas tardes, estoy intentando hacer una copia de seguridad con "rsync" a un disco duro externo usb 3.0 de dos teras de capacidad. para ello utilizo el siguiente script
Si no tienes mucha experiencia en el uso del terminal, tienes kup y kbackup para estas cosas. Funcionan igual, son fáciles como el mecanismo de un chupete, etc.
Si lo que quieres es aprender algo del terminal, bien:
#!/bin/bash # creamos una variable que contine la fecha y hora de ejecución fecha=`date | awk '{print $1 "_" $2 "_" $3 "_" $4 "_" $6}'`
# ejecutamos la sincronización y guardamos el resultado en un fichero utilizando la variable de antes # para que sea distinto cada vez /usr/bin/rsync -auvh --stats --delete-excluded /home/nacho/abuelos /run/media/nacho/My Passport/Seguridad
Como ves, el que hizo el script te dice "utilizando la variable de antes para que sea distinto cada vez", pero realmente en la línea "que hace las cosas" no se utiliza la variable.
Sin embargo, en mi opinión usar rsync con esa variable no tiene sentido. Rsync copia los ficheros nuevos o que hayan sido modificados desde la última vez. Así que yo borraría eso de fecha...
Yo lo usaría con --link-dest=backup_anterior, pero eso se vuelve más complicado el script. Es posible que el autor lo haga así en su ordenador pero lo haya simplificado para Ignacio, y no haya borrado la linea de creación de la variable.
Si lo que quieres es tener carpetas con la fecha de cada copiado, supongo que podrías hacer algo como
mkdir /run/media/nacho/My\ Passport/Seguridad/$fecha
Antes de la copia y después de lo de fecha=...
Yo la fecha la creo en formato iso (date --iso), no necesito usar awk para eso.
No veo que el script use la variable "fecha" que has creado.
Pues bien, yo se poco de esto, el script me lo paso mi hermano que sabe un poco mas, tampoco se para que, lo hace, funciona y para mi es suficiente, a lo mejor si quito lo de la variable sigue funcionando.....
y esta es la respuesta que obtengo
nacho@localhost:~/perl> perl copia2
¿Que pinta aquí el perl? El script que has puesto arriba es de bash.
Tampoco lo se, la cuestion es que si en una ventana de Konsole tecleo solamente "copia2" no hace nada, pero si lo hago "perl copia2" hace lo que quiero que haga.....
Yo lo uso con "tareas progamadas" y si en la orden del programa no pongo "perl" no funciona......
Pff... No le has dado permiso de ejecución al script.
O dicho de otra forma, puedes ejecutarlo poniendo sh (bash) en lugar de perl. Lo suyo con las cosas que funcionan es darles permisos de ejecución y ponerlos en un lugar adecuado.
Correcto :-) Yo a veces no le doy permiso de ejecución al script para no activarlo accidentalmente al ver el directorio con un manejador de ficheros como mc. -- Cheers / Saludos, Carlos E. R. (from 15.3 x86_64 at Telcontar)
El 7/3/22 a las 21:28, Carlos E. R. escribió:
On 2022-03-07 20:19, Ignacio de Juan wrote:
El 7/3/22 a las 19:27, Carlos E. R. escribió:
On 2022-03-07 15:59, Ignacio de Juan wrote:
Hola buenas tardes, estoy intentando hacer una copia de seguridad con "rsync" a un disco duro externo usb 3.0 de dos teras de capacidad.
para ello utilizo el siguiente script
#!/bin/bash # creamos una variable que contine la fecha y hora de ejecución fecha=`date | awk '{print $1 "_" $2 "_" $3 "_" $4 "_" $6}'`
# ejecutamos la sincronización y guardamos el resultado en un fichero utilizando la variable de antes # para que sea distinto cada vez /usr/bin/rsync -auvh --stats --delete-excluded /home/nacho/abuelos /run/media/nacho/My Passport/Seguridad
No veo que el script use la variable "fecha" que has creado. Pues bien, yo se poco de esto, el script me lo paso mi hermano que sabe un poco mas, tampoco se para que, lo hace, funciona y para mi es suficiente, a lo mejor si quito lo de la variable sigue funcionando.....
y esta es la respuesta que obtengo
nacho@localhost:~/perl> perl copia2
¿Que pinta aquí el perl? El script que has puesto arriba es de bash.
Tampoco lo se, la cuestion es que si en una ventana de Konsole tecleo solamente "copia2" no hace nada, pero si lo hago "perl copia2" hace lo que quiero que haga.....
Yo lo uso con "tareas progamadas" y si en la orden del programa no pongo "perl" no funciona......
Pff... No le has dado permiso de ejecución al script.
Le he preguntado a quien me mando el script y me dice que esa variable la creo para luego obtener volcarlo en un fichero log. En cuanto a lo de darle permisos de ejecución, los tiene o eso creo, al menos si le doy a propiedades -- permisos, viene marcada la casilla es ejecutable....asi que mas no se. Pero gracias.
Y como puedo hacer para que esa unidad externa se monte automáticamente al encender el equipo. Gracias.
Hola. O martes, 8 de marzo de 2022 20:22:54 CET Ignacio de Juan escribiu:
Y como puedo hacer para que esa unidad externa se monte automáticamente al encender el equipo.
Hay muchas formas. Yo no lo haría de todas formas. Una unidad externa es la clase de cosas que puedes desenchufar en cualquier momento. Supongo que quieres tenerlo conectado para cuando haces tus copias poder despreocuparte de él. Recuerda: si le dices que monte un dispositivo y luego ese dispositvo no está le va a hacer mucha menos gracia al sistema de lo que piensas xD Empieza por un vistazo aquí: https://es.opensuse.org/SDB:Fundamentos_del_acceso_a_dispositivos Dependiendo de qué uses, tienes muchas opciones. Puedes conectar el disco, ir al particionador, y asignarle un punto de montaje estático. En la página de la wiki de openSUSE que te he dicho antes describe cómo hacerlo. Otra opción, si usas el escritorio Plasma, puedes ir a la configuración los dispositivos extraíbles (menú contextual del notificador de dispositivos en la bandeja de sistema) y ahí decirle que lo monte automáticamente (eso debería de ser suficiente, tendrías que probar.) Una tercera opción es añadir una línea en el script para hacer el montaje. Como curiosidad, si usas el montaje "normal", asegúrate de tener permiso de escritura ;) En la wiki creo que se habla de eso en algún lado. Por otra parte, con kup si le dices que haga una copia todos los viernes, por ejemplo, lo que hará es que si no lo tienes enchufado no hará nada y en cuanto lo enchufes lo hará. Salud!!
On 2022-03-08 20:22, Ignacio de Juan wrote:
Y como puedo hacer para que esa unidad externa se monte automáticamente al encender el equipo.
No. No, porque como no esté el disco puesto al arrancar el ordenador, este va a protestar durante el arranque y te va a dejar en modo de emergencia. Lo correcto es: a) montarlo y desmontarlo desde el script b) comprobar en el script que esté montado. O mejor, ambas cosas. -- Cheers / Saludos, Carlos E. R. (from 15.3 x86_64 at Telcontar)
El 8/3/22 a las 21:38, Carlos E. R. escribió:
On 2022-03-08 20:22, Ignacio de Juan wrote:
Y como puedo hacer para que esa unidad externa se monte automáticamente al encender el equipo.
No.
No, porque como no esté el disco puesto al arrancar el ordenador, este va a protestar durante el arranque y te va a dejar en modo de emergencia.
Lo correcto es:
a) montarlo y desmontarlo desde el script b) comprobar en el script que esté montado.
O mejor, ambas cosas.
Gracias a todos por vuestros aportes, en que pueda me pongo a ello.
participants (3)
-
Carlos E. R.
-
Ignacio de Juan
-
karlggest