Autor
|
Tema: Problema con script en bash (Leído 7,261 veces)
|
Gambinoh
|
El caso es que siempre pense en automatizar ciertas tareas, pero dado que no me he molestado en leer un mísero tutorial de Batch scripting no se como hacerlo. Este es el script que ejecuto al inicio (está en /etc/init.d/): #!/bin/sh
rm -rf ~/.local/share/Trash/*/** &> /dev/null rm -rf ~/.macromedia/ &> /dev/null
exit 0 Quisiera añadir tambien una orden para ejecutar sqlitebrowser y eliminar las tablas messages y chats del archivo ~/.Skype/user.name/main.db. También quisiera sustituir la ejecución de rm por srm del paquete secure-delete, pero hace falta ejecutarla como superusuario. Por ultimo hacer que todas estas ordenes se ejecuten al apagar o reiniciar el sistema ¿Es posible?
|
|
« Última modificación: 2 Octubre 2015, 13:47 pm por Gambinoh »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
El caso es que siempre pense en automatizar ciertas tareas, pero dado que no me he molestado en leer un mísero tutorial de Batch scripting no se como hacerlo. Pues vas mal encaminado si te da por leer un tutorial de Batch, ya que lo que estás utilizando es Bash, la diferencia es que el primero es para Windows, y el segundo para Linux. Saludos
|
|
|
En línea
|
|
|
|
Gambinoh
|
Ya, tienes razón, ha sido una errata.
Pero creo que has entendido el sentido de las ordenes que quiero ejecutar.
¿Algún consejo menos sarcástico?
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Ya, tienes razón, ha sido una errata.
Pero creo que has entendido el sentido de las ordenes que quiero ejecutar.
¿Algún consejo menos sarcástico?
No era sarcasmo, solo pretendía evitar que por error leyeras algo que no te serviría, yo no sabia si era una simple errata. Sobre Bash, no puedo ayudarte, esperemos que alguien te pueda servir de más ayuda. Saludos!
|
|
|
En línea
|
|
|
|
daryo
|
no esta siendo sarcastico , a veces hay gente que copia y pega scripts sin saber que diablos son , tu pregunta tendria mas respuestas en linux. si se puede el metodo depende si es en systemd y systemv cual distribucion usas? editook lei y segun tu comentario y con ese directorio que mencionas es systemv entonces pon tu script en el directorio para cuando se apaga cuando se reinicia: y dale permisos de ejecucion todos esos scripts se ejecutaran como root
|
|
« Última modificación: 16 Diciembre 2014, 00:38 am por daryo »
|
En línea
|
buenas
|
|
|
Gambinoh
|
Gracias por la ayuda daryo, lamentablemente no se ejecuta. Renombré el script en /etc/init.d/ a K99Script.sh, le di permisos de ejecución y creé enlaces simbólicos en /etc/rc0.d/ y /etc/rc6.d/. sudo mv /etc/init.d/K99Script /etc/init.d/K99Script.sh sudo chmod +x /etc/init.d/K99Script.sh sudo ln -s /etc/init.d/K99Script.sh /etc/rc0.d/K99Script.sh ... ¿Qué puede estar fallando? Mi actual distribución es Ubuntu 12.04.
|
|
« Última modificación: 17 Diciembre 2014, 08:01 am por Gambinoh »
|
En línea
|
|
|
|
daryo
|
pues acabo de probar hacer un script y el proceso es el siguiente lo voy a nombrar bos el script tiene esta estructura: #! /bin/sh ### BEGIN INIT INFO # Provides: scriptname # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO # siempre se ejecuta touch /var/lock/blah touch /home/rain/blah # Carry out specific functions when asked to by the system case "$1" in start) echo "Starting script blah " echo "Could do more here" ;; stop) echo "Stopping script blah" echo "Could do more here" ;; *) echo "Usage: " $0 " {start|stop}" exit 1 ;; esac exit 0
lo que esta dentro de start se ejecuta al inicio stop cuando se apaga o reinicia (los comentarios del inicio son importantes hasta donde dice ### END INIT INFO) luego ponemos este script en la ubicacion: /etc/init.d/bos
le doy los permisos necesarios cd /etc/init.d/ sudo chmod 755 bos
luego para crear automaticamente los enlaces simbolicos en los directorios rc#.d. sudo update-rc.d bos defaults
y listo
|
|
« Última modificación: 17 Diciembre 2014, 16:08 pm por daryo »
|
En línea
|
buenas
|
|
|
Gambinoh
|
Vale, he seguido los pasos exactos que indicas en tu último mensaje, pero sigue sin ejecutarse al reinicio o apagado. Esta vez no incluí extensión "sh" al nombre del script.
No lo entiendo mi script se ejecutaba antes al inicio, no tenia extensión sh, solo el contenido que indico en el primer post ¿Qué puede estar fallando?
|
|
|
En línea
|
|
|
|
daryo
|
lo que quieres borrar esta en el directorio de root porque cuando pones rm -rf ~/.local/share/Trash/*/** &> /dev/null
lo hace en el directorio de usuario del root y no tu usuario.incluso si es root prueba usando el directorio completo si es otro ponlo rm -rf /home/miusiario/.local/share/Trash/*/** &> /dev/null
tambien no le pongas K99 sino K01 o usa el comando update-rc.d no se no tengo mas ideas xD
|
|
« Última modificación: 19 Diciembre 2014, 05:00 am por daryo »
|
En línea
|
buenas
|
|
|
MinusFour
|
Esos comandos los puedes poner en tu .xsession en tu home (~/.xsession). No hace falta crear un sysvinit script para eso. Encima, creo que el init lo corre root asi que... estaria borrando en el directorio home de root y no de tu usuario.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Bash script] equivalente de goto en batch para bash (SOLUCIONADO)
Scripting
|
moikano→@
|
4
|
16,581
|
4 Noviembre 2010, 15:58 pm
por moikano→@
|
|
|
Problema Script. [bash]
Scripting
|
LDueñas
|
7
|
6,372
|
27 Mayo 2011, 09:16 am
por LDueñas
|
|
|
Problema script bash
Scripting
|
hervasiop12345
|
2
|
3,468
|
29 Mayo 2011, 22:23 pm
por hervasiop12345
|
|
|
[Bash] Abrir un proceso o otro script bash en una nueva shell
Scripting
|
nhaalclkiemr
|
2
|
14,430
|
27 Agosto 2011, 06:23 am
por nhaalclkiemr
|
|
|
Problema con script en bash
Scripting
|
bewa
|
0
|
1,586
|
1 Febrero 2012, 21:44 pm
por bewa
|
|