Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # '$1' variable posicional que recibe el script
- input_user=$1
- located_user=$(cat /etc/passwd | cut -d ':' -f 1 | grep -w $input_user)
- func_ts() {
- # devuelve timestamp en formato epoch:
- # _1755358729
- echo "$(date +%s)"
- }
- func_log() {
- # '$1' variable posicional que recibe la funcion
- # '$2' variable posicional que recibe la funcion
- # 'local' declara la variable de manera local a la funcion
- # no entra en conflicto con variables que se llamen igual
- # que esten declaradas fuera
- local timestamp="$1"
- local error="$2"
- echo "$timestamp - $error" >> salida.log
- }
- # errores
- priv_err="El usuario $USER ($UID) ejecuto el programa sin privilegios."
- user_err="El usuario no se encuentra en el sistema"
- # '$UID' devueleve la 'uid' del usuario que ejeucta el script.
- # '0' es la 'uid' del usuario 'root'.
- if [ $UID -ne 0 ]; then
- # salida por terminal bajo el canal 'stderr'
- echo $priv_err >&2
- # Guardar en log
- # func_log 1755359541 "Mensaje de error"
- func_log $(func_ts) "$priv_err"
- exit 1
- fi
- if [ "$input_user" == "$located_user" ];then
- read -p "El usuario '$input_user' existe en el sistema, desea crear backup? " ans
- else
- echo $user_err >&2
- func_log $(func_ts) "$user_err"
- exit 1
- fi
- if [ "y" == "$ans" ] || [ "Y" == "$ans" ] ; then
- tar vczf /home/${input_user}.tar.gz /home/${input_user}
- else
- echo "No se hace nada, se sale."
- exit 1
- fi
- echo "
- Ficheros archivados:
- "
- ls -1 /home/*.gz
Advertisement
Add Comment
Please, Sign In to add comment