xiloba
(usa Slackware)
Enviado em 01/11/2010 - 17:09h
Estou tentando fazer um teste com o tutorial de fazer um "deepfreeze" caseiro no Linux(http://www.vivaolinux.com.br/topico/UbuntuBR/Deepfreezer-no-Ubuntu-9.04)
------------------------------------------------------------------------------------
Deepfreezer no Ubuntu 9.04 [RESOLVIDO]
Tenho um ubuntu 9.04 no note e seguindo as dicas do site:
http://www.donosdelanhouse.com.br/linux/deepfreeze-no-linux/
---------------------------------------------------------------------:
Trabalho em uma faculdade aqui no DF e nossos laboratórios são open source (Ubuntu). Nós tínhamos um problema quanto a configuração, pois os alunos apagavam os ícones, mudavam papel de parede e baixavam besteiras nas máquinas, aí com uma simples utilização do rsync eu resolvi isto.
A primeira coisa que se tem a fazer é fazer todas devidas configurações na home (papel de parede, ícones, atalhos, temas e etc), depois faça uma sincronização da pasta /home/usuário-configurado para uma pasta em que os usuários não tenham acesso:
# rsync -azv /home/aluno /mnt
No meu caso o usuário é aluno e a pasta escolhida foi a mnt.
Depois edite o arquivo /etc/init.d/bootmisc (no caso do Ubuntu, se for usar Fedora é /etc/rc.local).
# nano /etc/init.d/bootmisc
Acrescente no final do arquivo os seguintes comandos:
rm -rf /home/aluno
rsync -azv /mnt/aluno /home
(substitua o “aluno” por seu usuário a ser restaurado)
Explicando: tudo que um aluno baixa ou modifica ele estará salvando ou alterando em sua pasta de usuário, então basta apagar sua pasta de usuário e levantá-la novamente usando o rsync, você poderia usar o “cp” também, mas eu achei o rsync mais rápido.
OBS: Se você posteriormente quiser fazer qualquer alteração na home terá que sincronizá-la novamente para a pasta que foi salva, por exemplo, troquei o papel de parede e depois:
# rsync -azv /home/aluno /mnt
--------------------------------------------------------------------------------
. Mas quando cheguei a parte de usar o bootmisc, não o achei em /etc/init.d, gostaria de saber se o bootlogd ficou no lugar daquele arquivo.
Aí vai a cópia do bootlogd:
#! /bin/sh
### BEGIN INIT INFO
# Provides: bootlogd
# Required-Start: mountdevsubfs
# X-Start-Before: hostname keymap keyboard-setup procps pcmcia hwclock hwclockfirst hdparm hibernate-clean
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Start or stop bootlogd.
# Description: Starts or stops the bootlogd log program
# which logs boot messages.
### END INIT INFO
PATH=/sbin:/bin # No remote fs at start
DAEMON=/sbin/bootlogd
[ -x "$DAEMON" ] || exit 0
NAME=bootlogd
DESC="boot logger"
BOOTLOGD_OPTS="-r -c"
[ -r /etc/default/bootlogd ] && . /etc/default/bootlogd
. /lib/init/vars.sh
. /lib/lsb/init-functions
# Because bootlogd is broken on some systems, we take the special measure
# of requiring it to be enabled by setting an environment variable.
case "$BOOTLOGD_ENABLE" in
[Nn]*)
exit 0
;;
esac
# Previously this script was symlinked as "stop-bootlogd" which, when run
# with the "start" argument, should stop bootlogd. Now stop-bootlogd is
# a distinct script, but for backward compatibility this script continues
# to implement the old behavior.
SCRIPTNAME=${0##*/}
SCRIPTNAME=${SCRIPTNAME#[SK]??}
ACTION="$1"
case "$0" in
*stop-bootlog*)
[ "$ACTION" = start ] && ACTION=stop
;;
esac
case "$ACTION" in
start)
# PATH is set above
log_daemon_msg "Starting $DESC" "$NAME"
if [ -d /proc/1/. ]
then
umask 027
start-stop-daemon --start --quiet --exec $DAEMON -- \
$BOOTLOGD_OPTS
ES=$?
else
$DAEMON $BOOTLOGD_OPTS
ES=$?
fi
log_end_msg $ES
;;
stop)
PATH=/bin:/sbin:/usr/bin:/usr/sbin
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --oknodo --stop --quiet --exec $DAEMON
ES=$?
sleep 1
log_end_msg $ES
if [ -f /var/log/boot ] && [ -f /var/log/boot~ ]
then
[ "$VERBOSE" = no ] || log_action_begin_msg "Moving boot log file"
# bootlogd writes to boot, making backup at boot~
cd /var/log && {
chgrp adm boot || :
savelog -q -p -c 5 boot \
&& mv boot.0 boot \
&& mv boot~ boot.0
}
ES=$?
[ "$VERBOSE" = no ] || log_action_end_msg $ES
fi
;;
restart|force-reload)
/etc/init.d/bootlogd stop
/etc/init.d/bootlogd start
;;
status)
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2
exit 3
;;
esac
:
-------------------------------------------------------------