- Módulo 1: Ubuntu en Live CD | En PDF
- Módulo 2: Instalación de Ubuntu | En PDF
- Módulo 3: Sofware libre | En PDF
- Módulo 4: El entorno de trabajo en Ubuntu | En PDF
- Módulo 5: Gestión de archivos | En PDF
- Módulo 6: Administración básica de sistema | En PDF
- Módulo 7: Aplicaciones de red | En PDF
- Módulo 8: Ofimática básica en Ubuntu | En PDF
- Módulo 9: Multimedia | En PDF
- Módulo 10: Utilidades | En PDF
- Enlaces de interés | En PDF
- Guía didáctica
- Autoría
Archivo del blog
Mostrando entradas con la etiqueta UF1465. Mostrar todas las entradas
Mostrando entradas con la etiqueta UF1465. Mostrar todas las entradas
lunes, 20 de marzo de 2017
Introducción a Linux
lunes, 13 de marzo de 2017
Dale vida a tus scripts con Zenity
Hace tiempo que quiero hablaros de esta pequeña pero matona
herramienta llamada Zenity, que nos ayuda a ponerle una interfaz gráfica
a nuestro scripts mediante funciones, menús o cajas de diálogos ya preconfigurados y combinables entre sí.
En ella podemos encontrar diálogos de calendario, formularios, listas, cuadros de mensajes o alertas, selección de archivos, entrada de texto, barra de progresos, iconos de notificación, etc.
Zenity es una herramienta de GNOME que podemos descargar desde este enlace, pero que está en los repositorios de algunas distribuciones y en otras como Ubuntu ya está instalado por defecto.
Veamos algunos ejemplos de lo que podemos hacer con Zenity. Para ello abrimos nuestro terminal y tecleamos lo siguiente:





Por supuesto esto solo es el marco, lo que queremos que aparezca dentro eso ya depende de nosotros. Por ejemplo, vamos a crear en unos pocos pasos un lanzador con tres sencillas funciones, que nos abra una aplicación, que nos abra una carpeta y que nos lleve a una página web, con la ayuda del comando xdg-open. Abre un editor y escribe lo siguiente:
file=$(zenity –width=360 –height=320 –list –title “Lanzador” –column Acciones “Abrir Gedit” “Abrir carpeta Música” “Ir a LinuxZone”)
if [ “$file” = “Abrir Gedit” ]; then
/usr/bin/gedit
elif [ “$file” = “Abrir carpeta Música” ]; then
xdg-open ~/Música/
elif [ “$file” = “Ir a LinuxZone” ]; then
xdg-open http://linuxzone.es/
else
exit 0
fi
Le ponemos el nombre que queramos, seguido de la extensión .sh y le damos permisos de ejecución.

Como vemos, tan solo hay que seleccionar una de las opciones y le damos a aceptar para que la ejecute.
Pero tal vez no te guste ese dialogo y prefieras una pantalla de selección en la que puedas abrir varias opciones de golpe, pues nada más sencillo, solo tenemos que añadir otra columna y la función –checklist, que podemos ponerla marcada (TRUE) o desmarcada (FALSE) por defecto:
file=$(zenity –width=360 –height=320 –title “Lanzador” –list –column=”” –column=”Acciones” –checklist FALSE “Abrir Gedit” FALSE “Abrir carpeta Música” TRUE “Ir a LinuxZone”)
if [ “$file” = “Abrir Gedit” ]; then
/usr/bin/gedit
elif [ “$file” = “Abrir carpeta Música” ]; then
xdg-open ~/Música/
elif [ “$file” = “Ir a LinuxZone” ]; then
xdg-open http://linuxzone.es/
else
exit 0
fi

En este enlace disponen de varios ejemplos de cuadros de dialogo y muchas opciones para experimentar. Así que ya sabes, si le quieres dar mas vistosidad a tus scripts o simplemente te has animado a empezar a hacer tus “pinitos” en bash, sin duda Zenity te lo pone fácil.
Proyecto Zenity
Este es un post continuo de Un ejemplo de diálogo de zenidad completa 1 , en este post cubriremos el diálogo de zenidad para el progreso, pregunta, advertencia, escala, información de texto y lista.
¿Cómo crear el diálogo de progreso zenity?
El diálogo de progreso es hacer un seguimiento de una progresión de una rutina, puede ser cualquier cosa, digamos que quiero almacenar la lista de resultados de archivos abiertos (lsof) en una llamada de archivo lsof.txt, y utiliza el progreso zenity para realizar un seguimiento de la progresión, lo hago :
Tengo que usar tee, porque sin usar tee, zenity se despojará de mi resultado. Echa un vistazo a los ejemplos de tee para obtener más información.
¿Cómo crear diálogo de preguntas de zenidad?
¿Cómo crear un diálogo de advertencia de zenidad?
¿Cómo crear el diálogo de la escala de la zenidad?
Diálogo de escala le permite establecer un rango de número, por lo que el usuario es fuerza para elegir un número dentro del rango.
¿Cómo crear un diálogo de información de texto de zenity?
La información de texto puede ser muy útil para mostrar texto a una GUI. Utilizo de nuevo los ejemplos lsof, pero esta vez alimentar los resultados al cuadro de información de texto.
Como puede ver, puede especificar el ancho y la altura de un diálogo de zenidad. Demasiado malo, el cuadro de diálogo de información de texto no tiene opción para deshabilitar el ajuste de texto y especificó qué tipo de letra utilizar.
¿Cómo crear el diálogo de lista de zenity?
El diálogo de lista es el diálogo más flexible y he gastado bastante a veces para utilizar el uso. Como puede generar varias columnas, selección múltiple, lista de comprobación, radiolist, etc. checkout -help-list para más información.
Esto es para radiolista:
Primero debe definir columnas, luego alimentar todas las opciones de lista una por una.
Esto es para la lista de verificación:
El resultado de este tiempo será largo y probablemente más de uno, por lo que puede spefify un separador para diferenciarlos.
Ejemplo de un bucle “for”:
La solución consiste en utilizar un bucle “while” asociado al comando interno “read”.
Sin embargo, también podemos obtener el mismo resultado con un bucle “for” con la condición de que cambiemos el valor de la variable "$IFS" (Internal Field Separator, separador de campo interno) antes de ejecutar el bucle. Es lo que veremos a continuación.
Las instrucciones en línea de comandos:
o en un script “bash”:
La salida en la pantalla será (stdout):
Ejemplo:
Felizmente el bucle “for” asociado a un cambio de IFS permite conservar la estructura del documento a la salida.
¿Cómo se puede comprobar en un script de Bash si el contenido de una variable es un número?
Una posible solución sería utilizar una expresión regular como la siguiente:
Esta expresión regular tiene en cuenta los números enteros, los decimales y los números negativos. Si necesitas una comprobación más simple, puedes utilizar las siguientes expresiones regulares alternativas:
^[0-9]+$, números enteros positivos.
^[0-9]+([.][0-9]+)?$, números enteros o decimales positivos.
¿Cómo comprobar si una variable de Bash contiene una determinada cadena de texto?
Sed – Eliminar una o varias líneas de un fichero
Sintaxis
sed '{[/]<n>|<cadena>|<regex>[/]}d' <nombre_ fichero>
sed '{[/]<direccion1>[,<direccion2>][/]d' <nombre_fichero
/.../ = delimitadores
n = el número de línea
cadena = la cadena contenida en la línea
regex = expresión regular correspondiente a la ocurrencia buscada
direccion = la dirección de una línea (número u ocurrencia)
d = delete (borrar)
Ejemplos
Eliminación de la 3ra línea
sed '3d' mi_fichero.txt
Eliminación de la línea conteniendo la cadena "awk"
sed '/awk/d' mi_fichero.txt
Eliminación de la última línea
sed '$d' mi_fichero.txt
Eliminación de todas las líneas vacías
sed '/^$/d' mi_fichero.txt
sed '/./!d' mi_fichero.txt
Eliminación de la línea conteniendo una expresión regular
(aquí se elimina la línea conteniendo caracteres numéricos (al menos 1 cifra) situados al final de la línea)
sed '/[0-9/][0-9]*$/d' mi_fichero.txt
Eliminación del intervalo comprendido entre las líneas 7 y 9
sed '7,9d' mi_fichero.txt
Lo mismo pero esta vez la dirección es reemplazada por una ocurrencia
sed '/-Inicio/,/-Fin/d' mi_fichero.txt
Nota
Los ejemplos precedentes únicamente modifican la visualización del archivo (salida estándar 1 = la pantalla).
Para realizar modificaciones permanentes, en las antiguas versiones (<4) utilizar un fichero temporal, para GNU sed utilizar el parámetro "-i[sufijo]" (--in-place[=sufijo]), como en el ejemplo siguiente:
sed -i".bak" '3d' mi_fichero.txt
No mostrará el resultado en la salida estándar, y modificará el fichero original "mi_fichero.txt" eliminando la 3ra línea y creará un fichero de respaldo llamado "mi_fichero.txt.bak"
Fichero a ser utilizado en los ejemplos (mi_fichero.txt):
Eliminar caractéres
tr -d "\n" < fichero.txt > fichero2.txt
tr ',' '.' < fichero2.txt > fichero3.txt
¿Cómo dividir en bash una cadena mediante un delimitador específico?
La solución más sencilla para dividir la cadena y convertirla en un array sería el siguiente código:
IN="bla@some.com;john@home.com"
arrIN=(${IN//;/ })
Otra posible solución consiste en utilizar la variable IFS (Internal Field Separator). Al cambiar el valor de esta variable en un comando, los cambios afectan solamente a ese comando, así que no tiene efectos secundarios. El resultado sería:
IFS=';' read -ra ADDR <<< "$IN"
for i in "${ADDR[@]}"; do
# procesar "$i"
done
Una generalización de la solución anterior sería:
while IFS=';' read -ra ADDR; do
for i in "${ADDR[@]}"; do
# procesar "$i"
done
done <<< "$IN"
En ella podemos encontrar diálogos de calendario, formularios, listas, cuadros de mensajes o alertas, selección de archivos, entrada de texto, barra de progresos, iconos de notificación, etc.
Zenity es una herramienta de GNOME que podemos descargar desde este enlace, pero que está en los repositorios de algunas distribuciones y en otras como Ubuntu ya está instalado por defecto.
Veamos algunos ejemplos de lo que podemos hacer con Zenity. Para ello abrimos nuestro terminal y tecleamos lo siguiente:
zenity --calendar
zenity --password --username
zenity --scale
zenity --width=360 --height=320 --list --title "Ejemplo" --column file "Visita LinuxZone"
zenity --question --width=350 --height=120 --title "El sistema encontró un error critico" --ok-label="Definitivamente" \
--cancel-label="Sí" --text "Windows se encuentra instalado en su disco. ¿Desea desinstalarlo?" ; echo $
Por supuesto esto solo es el marco, lo que queremos que aparezca dentro eso ya depende de nosotros. Por ejemplo, vamos a crear en unos pocos pasos un lanzador con tres sencillas funciones, que nos abra una aplicación, que nos abra una carpeta y que nos lleve a una página web, con la ayuda del comando xdg-open. Abre un editor y escribe lo siguiente:
#!/bin/bashfile=$(zenity –width=360 –height=320 –list –title “Lanzador” –column Acciones “Abrir Gedit” “Abrir carpeta Música” “Ir a LinuxZone”)
if [ “$file” = “Abrir Gedit” ]; then
/usr/bin/gedit
elif [ “$file” = “Abrir carpeta Música” ]; then
xdg-open ~/Música/
elif [ “$file” = “Ir a LinuxZone” ]; then
xdg-open http://linuxzone.es/
else
exit 0
fi
Le ponemos el nombre que queramos, seguido de la extensión .sh y le damos permisos de ejecución.

Como vemos, tan solo hay que seleccionar una de las opciones y le damos a aceptar para que la ejecute.
Pero tal vez no te guste ese dialogo y prefieras una pantalla de selección en la que puedas abrir varias opciones de golpe, pues nada más sencillo, solo tenemos que añadir otra columna y la función –checklist, que podemos ponerla marcada (TRUE) o desmarcada (FALSE) por defecto:
#!/bin/bashfile=$(zenity –width=360 –height=320 –title “Lanzador” –list –column=”” –column=”Acciones” –checklist FALSE “Abrir Gedit” FALSE “Abrir carpeta Música” TRUE “Ir a LinuxZone”)
if [ “$file” = “Abrir Gedit” ]; then
/usr/bin/gedit
elif [ “$file” = “Abrir carpeta Música” ]; then
xdg-open ~/Música/
elif [ “$file” = “Ir a LinuxZone” ]; then
xdg-open http://linuxzone.es/
else
exit 0
fi

En este enlace disponen de varios ejemplos de cuadros de dialogo y muchas opciones para experimentar. Así que ya sabes, si le quieres dar mas vistosidad a tus scripts o simplemente te has animado a empezar a hacer tus “pinitos” en bash, sin duda Zenity te lo pone fácil.
Proyecto Zenity
Este es un post continuo de Un ejemplo de diálogo de zenidad completa 1 , en este post cubriremos el diálogo de zenidad para el progreso, pregunta, advertencia, escala, información de texto y lista.
¿Cómo crear el diálogo de progreso zenity?
El diálogo de progreso es hacer un seguimiento de una progresión de una rutina, puede ser cualquier cosa, digamos que quiero almacenar la lista de resultados de archivos abiertos (lsof) en una llamada de archivo lsof.txt, y utiliza el progreso zenity para realizar un seguimiento de la progresión, lo hago :
gksudo lsof | tee >(zenity --progress --pulsate) >lsof.txt
Tengo que usar tee, porque sin usar tee, zenity se despojará de mi resultado. Echa un vistazo a los ejemplos de tee para obtener más información.
¿Cómo crear diálogo de preguntas de zenidad?
zenity --question --text "Are you sure you want to shutdown?"; echo $?
Como echo $? Devuelve el resultado 0 significa que el usuario presiona yes, 1 significa cancel. ¿Cómo crear un diálogo de advertencia de zenidad?
zenity --warning --text "This will kill, are you sure?";echo $?
¿Cómo crear el diálogo de la escala de la zenidad?
Diálogo de escala le permite establecer un rango de número, por lo que el usuario es fuerza para elegir un número dentro del rango.
ans=$(zenity --scale --text "pick a number" --min-value=2 --max-value=100 --value=2 --step 2);echo $ans
¿Cómo crear un diálogo de información de texto de zenity?
La información de texto puede ser muy útil para mostrar texto a una GUI. Utilizo de nuevo los ejemplos lsof, pero esta vez alimentar los resultados al cuadro de información de texto.
gksudo lsof | zenity --text-info --width 530
Como puede ver, puede especificar el ancho y la altura de un diálogo de zenidad. Demasiado malo, el cuadro de diálogo de información de texto no tiene opción para deshabilitar el ajuste de texto y especificó qué tipo de letra utilizar.
¿Cómo crear el diálogo de lista de zenity?
El diálogo de lista es el diálogo más flexible y he gastado bastante a veces para utilizar el uso. Como puede generar varias columnas, selección múltiple, lista de comprobación, radiolist, etc. checkout -help-list para más información.
Esto es para radiolista:
ans=$(zenity --list --text "Is linux.byexamples.com helpful?" --radiolist --column "Pick" --column "Opinion" TRUE Amazing FALSE Average FALSE "Difficult to follow" FALSE "Not helpful"); echo $ans
Primero debe definir columnas, luego alimentar todas las opciones de lista una por una.
Esto es para la lista de verificación:
ans=$(zenity --list --text "How linux.byexamples can be improved?" --checklist --column "Pick" --column "options" TRUE "More pictures" TRUE "More complete post" FALSE "Includes Installation guidelines" FALSE "Create a forum for question queries" --separator=":"); echo $ans
El resultado de este tiempo será largo y probablemente más de uno, por lo que puede spefify un separador para diferenciarlos.
Preámbulo
Uno de los errores más comunes cuando se aprende a utilizar los scripts “bash” bajo GNU/Linux para leer un archivo línea por línea, es el utilizar un bucle “for”, (for line in $(cat file.txt); do ...) lo que conduce a una evaluación de cada palabra y no de cada línea, que es lo que se busca.Ejemplo de un bucle “for”:
for line in $(cat file.txt); do echo "$line" ; done Esta Es La Línea n° 1 Esta Es La Línea n° 2 Esta [...]
La solución consiste en utilizar un bucle “while” asociado al comando interno “read”.
Sin embargo, también podemos obtener el mismo resultado con un bucle “for” con la condición de que cambiemos el valor de la variable "$IFS" (Internal Field Separator, separador de campo interno) antes de ejecutar el bucle. Es lo que veremos a continuación.
Bucle while
El bucle “while” sigue siendo el método más apropiado y simple para leer un archivo línea por línea.Sintaxis
while read linea do comando done < archivo
Ejemplo
El archivo de inicio:Esta es la línea n° 1 Esta es la línea n° 2 Esta es la línea n° 3 Esta es la línea n° 4 Esta es la línea n° 5
Las instrucciones en línea de comandos:
while read line; do echo -e "$line\n"; done < file.txt
o en un script “bash”:
#! /bin/bash while read line do echo -e "$line\n" done < file.txt
La salida en la pantalla será (stdout):
Esta es la línea n° 1 Esta es la línea n° 2 Esta es la línea n° 3 Esta es la línea n° 4 Esta es la línea n° 5
Trucos
También podemos a partir de un archivo estructurado (como una libretas de direcciones o /etc/passwd por ejemplo) obtener los valores de cada campo y asignarlos a varias variables con el comando “read”. Sin embargo hay que tener cuidado de asignar a la variable “IFS” el separador de campo adecuado (espacio por defecto).Ejemplo:
#! /bin/bash while IFS=: read user pass uid gid full home shell do echo -e "$full :\n\ Pseudo : $user\n\ UID :\t $uid\n\ GID :\t $gid\n\ Home :\t $home\n\ Shell :\t $shell\n\n" done < /etc/passwd
Complemento
while read i; do echo -e "parametro : $i"; done < <(echo -e "a\nab\nc")
Bucle for
Si bien es cierto que el bucle “while” es el método más simple, sin embargo este tiene un gran inconveniente, el de eliminar el formateado de las líneas y especialmente los espacios y tabulaciones.Felizmente el bucle “for” asociado a un cambio de IFS permite conservar la estructura del documento a la salida.
Sintaxis
oldIFS=$IFS # conserva el separador de campo IFS=$'\n' # nuevo separador de campo, el caracter fin de línea for línea in $(cat archivo) do comando done IFS=$old_IFS # restablece el separador de campo predeterminado
Consulta también
- Cómo leer un archivo línea por línea
- Leer textos con bash
- Bash recorrer fichero linea a linea
- Grabación - Grabar o leer un archivo .img / .ccd / .sub
- Grabar o leer un archivo MDF o MDS
- SVG: Cómo leer un archivo en formato SVG
- Leer un archivo Publisher (.pub) sin Publisher
- Códec para reproducir formato AVI [Resuelto] (Resuelto)
Una posible solución sería utilizar una expresión regular como la siguiente:
Esta expresión regular tiene en cuenta los números enteros, los decimales y los números negativos. Si necesitas una comprobación más simple, puedes utilizar las siguientes expresiones regulares alternativas:
^[0-9]+$, números enteros positivos.
^[0-9]+([.][0-9]+)?$, números enteros o decimales positivos.
¿Cómo comprobar si una variable de Bash contiene una determinada cadena de texto?
Sed – Eliminar una o varias líneas de un fichero
Sintaxis
sed '{[/]<n>|<cadena>|<regex>[/]}d' <nombre_ fichero>
sed '{[/]<direccion1>[,<direccion2>][/]d' <nombre_fichero
/.../ = delimitadores
n = el número de línea
cadena = la cadena contenida en la línea
regex = expresión regular correspondiente a la ocurrencia buscada
direccion = la dirección de una línea (número u ocurrencia)
d = delete (borrar)
Ejemplos
Eliminación de la 3ra línea
sed '3d' mi_fichero.txt
Eliminación de la línea conteniendo la cadena "awk"
sed '/awk/d' mi_fichero.txt
Eliminación de la última línea
sed '$d' mi_fichero.txt
Eliminación de todas las líneas vacías
sed '/^$/d' mi_fichero.txt
sed '/./!d' mi_fichero.txt
Eliminación de la línea conteniendo una expresión regular
(aquí se elimina la línea conteniendo caracteres numéricos (al menos 1 cifra) situados al final de la línea)
sed '/[0-9/][0-9]*$/d' mi_fichero.txt
Eliminación del intervalo comprendido entre las líneas 7 y 9
sed '7,9d' mi_fichero.txt
Lo mismo pero esta vez la dirección es reemplazada por una ocurrencia
sed '/-Inicio/,/-Fin/d' mi_fichero.txt
Nota
Los ejemplos precedentes únicamente modifican la visualización del archivo (salida estándar 1 = la pantalla).
Para realizar modificaciones permanentes, en las antiguas versiones (<4) utilizar un fichero temporal, para GNU sed utilizar el parámetro "-i[sufijo]" (--in-place[=sufijo]), como en el ejemplo siguiente:
sed -i".bak" '3d' mi_fichero.txt
No mostrará el resultado en la salida estándar, y modificará el fichero original "mi_fichero.txt" eliminando la 3ra línea y creará un fichero de respaldo llamado "mi_fichero.txt.bak"
Fichero a ser utilizado en los ejemplos (mi_fichero.txt):
Eliminar caractéres
tr -d "\n" < fichero.txt > fichero2.txt
tr ',' '.' < fichero2.txt > fichero3.txt
¿Cómo dividir en bash una cadena mediante un delimitador específico?
La solución más sencilla para dividir la cadena y convertirla en un array sería el siguiente código:
IN="bla@some.com;john@home.com"
arrIN=(${IN//;/ })
Otra posible solución consiste en utilizar la variable IFS (Internal Field Separator). Al cambiar el valor de esta variable en un comando, los cambios afectan solamente a ese comando, así que no tiene efectos secundarios. El resultado sería:
IFS=';' read -ra ADDR <<< "$IN"
for i in "${ADDR[@]}"; do
# procesar "$i"
done
Una generalización de la solución anterior sería:
while IFS=';' read -ra ADDR; do
for i in "${ADDR[@]}"; do
# procesar "$i"
done
done <<< "$IN"
viernes, 10 de marzo de 2017
Linux : copias de seguridad
En este apartado vamos a ver cómo utilizar el comando tar con una serie de opciones específicas que permiten emplearlo para la realización de copias de seguridad.
Por otro lado, también vamos a estudiar el programa AMANDA, el cual utilizaremos para implementar políticas de seguridad utilizando la arquitectura cliente/servidor.
tar
El comando tar puede utilizarse como
alternativa para hacer copias de seguridad de nuestro sistema de
ficheros. En tal caso, es importante tener en cuenta que si un usuario
modifica un fichero a la vez que tar lo está archivando es muy probable que la copia de seguridad no se realice correctamente y la recuperación del fichero falle.
Existen dos opciones especiales en la orden tar para hacer copias de seguridad, y son:
La opción -g (--listed-incremental) incluye el fichero donde tar registrará qué ficheros fueron modificados, añadidos y borrados desde el último backup, para así tenerlo en cuenta en la siguiente copia de seguridad y sólo incluir las modificaciones.
Si el fichero /var/backups/completa.info existiera y quisiéramos hacer un backup de nivel 0, simplemente tendríamos que borrarlo.
En este caso, sólo se copiarán en diferencial.tgz las modificaciones (ficheros nuevos y actualizados) desde la copia total, y en backup.info se añadirá la metainformación necesaria para registrar los ficheros que han intervenido, es decir, los ficheros nuevos, modificados y borrados desde el backup total.
Es el fichero backup.info (generado por la copia de seguridad completa) la base para calcular los cambios producidos en el directorio /home. Es por esto, que si nuestra intención es hacer días después, otra copia de seguridad diferencial, antes del paso anterior deberíamos haber hecho una copia de backup.info original, para que la nueva copia diferencial se vuelva a basar en la metainformación generada por el backup completo. Es decir, para la primera copia diferencial:
Cuando se extrae un fichero de copia de seguridad, el comando tar intenta restaurar el estado exacto del sistema de ficheros que había cuando el fichero se creó, lo que implica borrar aquellos ficheros y directorios que no existían por entonces. Si se utilizan varios niveles de copias de seguridad, para dejar el sistema de ficheros como estaba cuando se realizó el último backup, habrá que restaurar cada uno de los niveles por orden, empezando por el nivel más bajo, el nivel 0. Por ejemplo, en los casos anteriores:
Existen dos opciones especiales en la orden tar para hacer copias de seguridad, y son:
--listed-incremental=fichero-de-registro ó -g fichero-de-registro
--incremental ó -G
Estas opciones permiten crear y manipular información que registra los ficheros que han intervenido en el backup.La opción -g (--listed-incremental) incluye el fichero donde tar registrará qué ficheros fueron modificados, añadidos y borrados desde el último backup, para así tenerlo en cuenta en la siguiente copia de seguridad y sólo incluir las modificaciones.
Creación de una copia de seguridad completa o de nivel 0:
Si quisiéramos crear una copia de seguridad completa del directorio /home sobre el fichero /var/backups/completa.tgz debemos ejecutar la siguiente orden:# tar -czf /var/backups/completa.tgz -g /var/backups/backup.info /homeLa clave para que el backup sea de nivel 0 es que el fichero /var/backups/completa.info no exista y entonces se cree por primera vez. En dicho fichero se registrarán todos los archivos que han intervenido en la copia.
Si el fichero /var/backups/completa.info existiera y quisiéramos hacer un backup de nivel 0, simplemente tendríamos que borrarlo.
Creación de copias de seguridad diferenciales:
Para hacer una copia de seguridad diferencial días después de haber hecho una copia total, tendríamos que ejecutar lo siguiente:# tar -czf /var/backups/diferencial.tgz -g /var/backups/backup.info /homedonde el fichero backup.info contiene inicialmente la información generada por el backup total previo.
En este caso, sólo se copiarán en diferencial.tgz las modificaciones (ficheros nuevos y actualizados) desde la copia total, y en backup.info se añadirá la metainformación necesaria para registrar los ficheros que han intervenido, es decir, los ficheros nuevos, modificados y borrados desde el backup total.
Es el fichero backup.info (generado por la copia de seguridad completa) la base para calcular los cambios producidos en el directorio /home. Es por esto, que si nuestra intención es hacer días después, otra copia de seguridad diferencial, antes del paso anterior deberíamos haber hecho una copia de backup.info original, para que la nueva copia diferencial se vuelva a basar en la metainformación generada por el backup completo. Es decir, para la primera copia diferencial:
# cp /var/backups/backup.info /var/backups/backup-diferencial.info # tar -czf /var/backups/backup-diferencial.tgz -g /var/backups/backup-diferencial.info /homey días después para la segunda copia diferencial:
# rm /var/backups/backup-diferencial.tgz /var/backups/backup-diferencial.info # cp /var/backups/backup.info /var/backups/backup-diferencial.info # tar -czf /var/backups/backup-diferencial.tgz -g /var/backups/backup-diferencial.info /home
Creación de copias de seguridad incrementales:
Si después de hacer la copia de seguridad total, lo que queremos es ir haciendo copias de seguridad incrementales, lo que debemos hacer es acumular la metainformación sobre el mismo fichero, es decir, backup.info. Así, tras la copia total, para hacer la primera copia incremental:# tar -czf /var/backups/incremental-1.tgz -g /var/backups/backup.info /homePara la siguiente copia incremental ejecutaríamos:
# tar -czf /var/backups/incremenl-2.tgz -g /var/backups/backup.info /homeY así, sucesivamente.
Restauración de la copia de seguridad:
Para restaurar las copias de seguridad usaremos la opción -x junto con la opción -G (--incremental); no será necesario hacer referencia al fichero con los metadatos del backup, pues toda la información para la extracción se encuentra en los ficheros de backup.Cuando se extrae un fichero de copia de seguridad, el comando tar intenta restaurar el estado exacto del sistema de ficheros que había cuando el fichero se creó, lo que implica borrar aquellos ficheros y directorios que no existían por entonces. Si se utilizan varios niveles de copias de seguridad, para dejar el sistema de ficheros como estaba cuando se realizó el último backup, habrá que restaurar cada uno de los niveles por orden, empezando por el nivel más bajo, el nivel 0. Por ejemplo, en los casos anteriores:
- Con una copia de seguridad completa y una diferencia:
# tar -xzf /var/backups/completa.tgz -G # tar -xzf /var/backups/diferencial.tgz -G
- Con una copia de seguridad completa y dos incrementales:
# tar -xzf /var/backups/completa.tgz -G # tar -xzf /var/backups/incremental-1.tgz -G # tar -xzf /var/backups/incremental-2.tgz -G
Listar el contenido de una copia de seguridad:
Puede obtenerse información extra de los fichero backup generados con tar, es necesario para ello usar la opción -G y dos veces la opción -v, por ejemplo:# tar -tvvGf i.tgz tar: Eliminando la `/' inicial de los nombres drwxr-xr-x root/root 16 2014-11-23 21:49 /root/tmp/ D d1 D d2 Y h.txt drwxr-xr-x root/root 9 2014-11-23 14:36 /root/tmp/d1/ N f1 N f2 drwxr-xr-x root/root 5 2014-11-23 21:50 /root/tmp/d2/ Y g1 -rw-r--r-- root/root 0 2014-11-23 21:49 /root/tmp/h.txt -rw-r--r-- root/root 15 2014-11-23 21:50 /root/tmp/d2/g1El significado de la D, N e Y que aparecen en el listado anterior es el siguiente:
- D: Es un directorio
- Y: Es un fichero almacenado en la copia de seguridad.
- N: Es un fichero que está en el directorio respaldado pero que no se encuentra en la copia de seguridad por no haber sido modificado.
domingo, 26 de febrero de 2017
UF1465_17: Resumen
TEMA 1
un ordenador es una máquina que procesa información y puede almacenarla, organizarla, recuperarla y transmitirla.
los elementos funcionales del pc son.
la unidad de entrada, los datos deben codificarse en las unidades de entrada como el teclado, escáner, micrófono.
la unidad central de proceso, los datos son sometidos a procesos aritméticos y lógico.
la unidad de salida, para hacer visible los datos.
la unidad central de sistema es la caja que contiene los elementos electrónicos: fuente, ventiladores, placa base, microprocesador y memoria.
los periféricos son los dispositivos que están fuera de la caja.
la fuente de alimentación transforma la corriente alterna en continua.
la memoria : RAM consiste en una memoria de acceso aleatorio y la ROM de solo lectura
el procesador un chip de silicio que contiene un microprocesador que trabaja a una determinada velocidad controlada por un reloj, de él depende la velocidad y la fiabilidad.
los procesadores se diferencian en la forma de procesar la información: CISC maneja bit a bit y RISC maneja agrupaciones.
Los CISC tienen un conjunto de instrucciones complejo, con multitud de instrucciones potentes y especializadas. DIFICULTA el paralelismo por lo que en la actualidad implementa un sistema que convierte las instrucciones en simples.
VENTAJAS : más fácil creación de compiladores, disminuye la traducción de lenguajes de alto nivel en código máquina, los código generados son más cortos, y la memoria caché no requiere mucho espacio para almacenar las instrucciones.
INCONVENIENTES: poco uso de instrucciones y direccionamientos complejos, los accesos a memoria disminuyen la velocidad de ejecución, consumo energético elevado
Los RISC tienen un conjunto de instrucciones simple que se ejecutan más rápidamente. solo las instrucciones de carga y almacenamiento acceden a memoria.
VENTAJAS: microarquitectura más simple, instrucciones más cortas, menos tiempo de acceso a memoria, compiladores más sencillos. consumo de energía bajo.
INCONVENIENTES: mayor número de líneas de código, la compatibilidad con arquitecturas antiguas es difícil de mantener.
Partes de un procesador.
- Registros.
grupo de datos tratados como unidad.
memoria de alta velocidad interna en el procesador.
son la manera más rápida de guardar datos.
- ALU (unidad aritmético lógica). realiza operaciones aritmeticas y logicas
- Unidad de control. encargada de interpretar los datos y emitir señales para que el resto de unidades realicen sus misiones.
Sus funciones : lectura instrucciones, decodificación, ejecución instrucciones.
Memoria. un lugar donde se guardan los datos de forma temporal mientras sean necesarios.
- Contador. guarda la dirección de la próxima instrucción a leer
- Interrupciones. señales que rompen la secuencia normal de ejecución
se producen:
cuando hay un error en la ejecución de las instrucciones.
acceso ilegal a instrucciones.
acceso ilegal a posición de memoria.
periférico solicita atención.
interrupciones de reloj.
consecuencia : se transfiere la ejecución a otro programa que atiende la interrupción.
pasos a realizar:
comprobación de señal de interrupción activada.
salva el contador y el registro .
pasa a modo núcleo.
obtiene la dirección de la interrupción.
almacena la dirección.
consecuencias:
salva el resto de registros del proceso.
atiende la interrupción.
restaura los registros del programa interrumpido.
ejecuta instrucción RETI.
- Set de instrucciones: son las encargadas de decir al procesador que hacer con los datos.
Tipos : Aritméticas, Lógicas, Control de flujo : saltan a otra parte
instrucciones 8086
- aritméticas : ADD, DEC, DIV
- logicas: AND, OR, NOT
- manejo bits: RCL, RCR, ROL
- conversion: AAA, AAD, AAM
- comparar: CMP, CMPS, TEST
- salto condición JA, JB, JC
- salto incondicional: CALL, JMP, RET
- manejo interrup INT, INTO, IRET
- transferencia usando
- Registros LEA, LES, POP
(movimiento de datos entre registros y memoria o vi)
- puertos IN, OUT, ESC
(comunicación procesador y elementos del bus y perifer.)
- especiales REP, REPE, REPNE
(transf. datos repetitivas )
- control micro:
(alteran banderas) CLC, CLD, CLI
(afectan funcionamiento micro) HLT, LOCK, NOP
memoria ram : almacén temporal de datos que se están procesando
características importantes : capacidad, velocidad,
tipos de módulos:
simm
circuito impreso
chips memoria 1 lado
SIN muescas
72 conectores
32 bits
dimm
circuito impreso
chips memoria 2 lados
1 muescas posición
184 conectores DDR
240 conectores DDR2, DDR3
rimm
184 conectores
2 muescas posición
64 bits
tipos por velocidad
sdram
2 muescas
168 contactos
entre 66 y 168 mhz
ddr ram
1 muesca
184 contactos
entre 200 y 600 mhz
1 ciclo 2 intercambios de datos
ddr2 ram
1 muesca
entre 400 y 800 mhz
ddr3 ram
doble veloc. ddr2
rambus
entre 600 y 1066 mhz
184 contactos
so-dimm
portátiles
rimm
memoria rom máscara
circuito integrado con programación específica desde su fabricación
memoria prom
unidad programable
memoria eprom
unidad borrable y programable
memoria caché
La caché de disco sirve para almacenar en la memoria RAM Los datos recientemente leídos en el disco duro.
almacena información temporal
ayuda a adquirir velocidad y eficacia
puede estar dentro o fuera de la memoria principal
diseñada para el apropiado y organizado almacenamiento de información
La caché del micro tiene tres niveles
L1: dentro de los circuitos del micro, muy rápida y eficiente, misma velocidad
L2: (antes en ram) integrada en el micro
L3:
Interfaces
serie / com / rs232
25 / 9 pines
20 kbs
transf. bit a bit
modem / ratón
paralelo / lpt
25 pines
2,4 mbs
impresoras / scanners
usb
1.1 1,5 / 12 mbs
2.0 480 mbs
3.0 600 mbs
firewire
400 mbs
hasta 63 dispositivos video
inalámbricos
ethernet o lan
específicos
ps2 (raton y teclado)
vga (video)
dvi (video)
pcmcia ( portátiles )
discos mecanicos
unidad principal de almacenamiento
formado por
platos
motor
cabezal
discos por su interfaz
ide /ata / pata
40 pines
soporta 2 dispositivos
maestro
esclavo
10 / 750 gb
circuitos integrados
altamente compatibles
33 mbs
sata
1 conector datos 7 hilos
1 conector elect 15 pines
40 gb / 4 tb
conexión en caliente
scsi
servidores
necesita tarjeta adaptadora
caros
placa base especial
320 mbs
fc (fibre channel)
alto rendimiento
bajo coste
conexión en caliente
no permite transferencia simultánea de datos
externos
disco duro estado solido ssd
dispositivo almacenamiento secundario sin partes mecánicas, formados por una memoria NO volátil
componentes
controlador : admin.memoria, velocidad y ejecuta firmware
cache : memoria dram
condensador: almacena datos temporalmente en ausencia de corriente
ventajas
arranque más rápido
menor tiempo acceso
menor consumo energético
menos peso y tamaño
menos calor
más silencioso
aguantan mejor movimientos
compatibles puerto sata
desventajas
caros
vida útil menor
no hay estándar velocidad
difícil recuperación fallos
procesador 64 bits
intel 4004 (1971)
micro 4 bits
2300 transistores
encapsulado 16 pines
reloj 740 khz
datos separados programas
intel 8008 (1974)
micro 14 bits
encapsulado 18 pines
bus compartidos de datos
puede acceder 8 puertos entrada y 24 salida
intel 8086 (1978)
micro 16 bits
intel 80286 (1982)
micro 16 bits
reloj 6 / 8 mhz llegó a 20 mhz
intel core duo
2mg cache
2 núcleos
667 mhz
intel 2 quad
4 núcleos
70% mas rapidos q core duo
tipos de lenguajes
alto nivel
cobol
pascal
basic
java
mediano nivel
c
bcpl
bajo nivel
ensamblador
instrucciones mnemotécnicas : ADD, SUB, DIV
necesita compilación
velocidad de cálculo
control total pc
optimización programas
dependencia total máquina
compleja formación programadores
máquina
TEMA 2
Sistema Operativo.
DEFINICIÓN.
Un sistema operativo es un programa que gestiona los recursos de hardware y da servicios a los programas.
Objetivos de los sistemas operativos.
- Hacer posible el uso eficiente de los recursos del sistema.
- coordina las diferentes velocidades de los dispositivos.
- Simplificar la operación de trabajo con el hardware.
Funciones de los sistemas operativos.
- Asignación de tiempo de CPU:
- Asignar recursos de forma racional.
- Control de entrada/salida:
- Control de los errores y protección:
- Interfaz con el usuario.
- Cálculo de costes de uso de Ce Pe U.
Tipos de sistemas operativos.
- Sistemas monousuarios y multiusuarios.
(MS-DOS, DR-DOS e IBM-DOS).
- Sistemas monotarea y multitarea.
- Sistemas monoproceso y multiproceso.
Estructura de sistemas operativos.
- Núcleo.
- Gestión de la memoria.
- Control de entrada/salida.
- Gestión de dispositivos de almacenamiento masivo.
- Asignación de recursos y planificación.
- Protección.
- Interfaz de usuario.
Núcleo.
Descansa directamente sobre el hardware y proporciona servicios a las capas superiores del sistema.
Las tareas principales son:
- Manejo de interrupciones.
- Asignación de trabajo al procesador.
- Proporcionar una vía de comunicación entre los diferentes programas.
Gestión de la memoria.
La memoria principal es más pequeña de lo que sería necesario.
El módulo de gestión de memoria es el encargado de asignar ciertas porciones de la memoria principal a los diferentes programas, mientras el resto de programas y datos se mantienen en los dispositivos de almacenamiento masivo.
La forma mas común de gestión de memoria es crear una memoria virtual utilizando los dispositivos de almacenamiento masivo.
División de la memoria.
- Por páginas: bloques de bytes de igual tamaño para todos los procesos y tareas.
- Por segmentos: bloques de bytes con distinto tamaño según el proceso.
- Por segmentos paginados: Los segmentos de tamaño distinto se dividen a su vez en páginas de distinto tamaño.
Gestión de la memoria. Requerimientos.
- Reubicación.
Los programadores no saben dónde estará el programa en memoria cuando se ejecute.
Mientras el programa se ejecuta, puede ser movido al disco y devuelto a memoria principal en un posición diferente.
Se deben traducir las referencias a memoria del código a las direcciones físicas reales.
Gestión de la memoria. Requerimientos.
- Proteción.
Los procesos no deberían ser capaces de referenciar el espacio de memoria de otro proceso sin permiso.
Es imposible comprobar las direcciones absolutas de los programas puesto que éstos pueden ser reubicados.
Deben ser traducidas durante la ejecución.
- Compartición
Permitir a varios procesos acceder a la misma zona de memoria.
Es mejor permitir a cada proceso accesos a la misma copia del programa que tener cada uno su copia individual.
Memoria virtual.
Permite a los programadores direccionar la memoria desde un punto de vista lógico.
Evitar que haya un vacío entre el desalojo de un proceso a disco y la carga del siguiente.
Necesita soporte de haradware.
Tipos de memoria.
Memoria real: la principal
Memoria virtual: la memoria en disco. Libera de la limitación del tamaño de la memoria principal.
Soporte necesario para la memoria virtual.
El hardware debe soportar paginación y segmentación.
El sistema operativo debe ser capaz de gestionar el movimiento de páginas y segmentos entre la memoria secundaria y la memoria principal.
Asignación de recursos y planificación.
El planificador cuenta con una política que varia de un sistema operativo a otro. Una política muy común consiste en la asignación de intervalos cortos de tiempo a los programas.
Protección.
Actuá contra dos sucesos:
Errores.
Abuso deliberado de los recursos del sistema.
Tipos de interfaz.
Interfaz de usuario.
Interfaz de comandos.
Interfaz gráfica.
Paginación.
Permite a los procesos estar constitutidos por un número de bloques de tamaño fijo, llamados páginas.
La dirección virtual se descompone en un número de página y un desplazamiento dentro de la página.
Cada página puede situarse en cualquier sitio de la memoria, llamados marcos de página.
La dirección real o física se refiere a la memoria principal.
Paginación.
VENTAJAS.
- Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud.
- No es necesario que las paginas estén contiguas en memoria.
- Es fácil controlar todas las páginas, ya que tienen el mismo tamaño.
Paginación.
DESVENTAJAS.
- El costo de hardware y software se incrementa. Se consume mucho mas recursos de memoria, tiempo en el CPU para su implantación.
- Se deben reservar áreas de memoria para los procesos. Al no ser fija el tamaño de estas, se crea un problema: como asignar un tamaño óptimo sin desperdicio de memoria.
Paginación.
EXISTEN 2 FUNCIONES.
- LLEVAR A CABO LA TRANSFORMACIÓN DE UNA DIRECCIÓN VIRTUAL A FÍSICA.
- TRANSFERIR PÁGINAS DE LA MEMORIA SECUNDARIA A LA MEMORIA PRINCIPAL, Y DE LA MEMORIA PRINCIPAL A LA MEMORIA SECUNDARIA CUANDO YA NO SEAN NECESARIAS.
Gestión de la memoria en Linux
Linux emplea en la gestión de memoria tanto intercambio como paginación. Cuando necesita generar una dirección en memoria virtual, utiliza una estructura de tabla de páginas con tres niveles que son:
- Directorio de páginas: el tamaño de una página donde cada entrada apunta al directorio intermedio de páginas.
- Directorio intermedio de páginas: pueden ser varias páginas y cada entrada señala a una página de la tabla de páginas.
- Tabla de páginas: cada entrada hace referencia a la página virtual.
Las direcciones virtuales en linux se encuentran divididas en cuatro campos:
Directorio: es el primer campo, se usa como índice del directorio de páginas.
Intermedio: es el segundo campo y el indice del directorio intermedio de páginas.
Página: es el tercer campo, índice que accede a la tabla de páginas.
Desplazamiento: es el cuarto campo, indica el desplazamiento dentro de la página seleccionada de la memoria.
El gestor de memoria Linux se descompone en dos partes bien diferenciadas:
- Asignación de páginas: Sistema colega.
- Algoritmo reemplazo de páginas: eNe eRre U.
Asignación de páginas:
- Linux utilizan bloques de páginas contiguas que corresponden a bloques de marcos contiguos.
- El algoritmo utilizado para asignar la página es conocido como el sistema colega.
- El sistema colega permite mantener los bloques libres de la memoria física.
- En este método solo se reservan tamaños que son potencias de dos.
Ventajas del sistema colega:
- Es muy fácil de implementar.
- Es rápido.
Inconvenientes:
- Tamaños solo potencia de dos.
- Provoca fragmentación interna en el procedimiento.
El algoritmo NRU favorece las páginas que fueron utilizadas recientemente y tiene el siguiente funcionamiento:
- Cuando una página es referenciada o modificada, fija el bit de referencia o modificación de esa página.
Algoritmo reemplazo páginas.
En cada intervalo de tiempo, el gestor de memoria resetea los bits de referencia de todas las páginas.
De este modo, las páginas que tienen bits de referencia o modificación son relevantes y tienen menos prioridad para ser modificada.
El gestor de memoria clasifica las páginas en cuatro categorías.
- Categoría 0, no referenciada, no modificada.
- Categoría 1, no referenciada, modificada.
- Categoría 2, referenciada, no modificada.
- Categoría 3, referenciada, modificada.
Las páginas que se sustituirán serán las de categoría 0, posteriormente las de la 1 y así sucesivamente.
Gestión de la memoria en Windows.
Al ejecutarse un proceso en Windows, el sistema busca asignarle un espacio de direcciones virtuales.
Al tener una gran cantidad de procesos en ejecución a la vez, comienza a realizar un cambio entre la memoria virtual y la física.
Windows utiliza la paginación con el fin de hacer la gestión de su memoria. Una pagina en Windows es de 4 Kilobytes.
Gestión de la memoria en Windows.
El intercambio se realiza no de bytes a bytes, sino de pagina a pagina, donde se almacenan los datos de los procesos. De ahí que toda la memoria esté paginada, tanto la física como la virtual.
A diferencia de los otros sistemas las páginas pueden estar en tres estados.
Disponible.
Reservada.
Asignada.
Gestión de la memoria en Windows.
Paginación.
Cuando la memoria empieza a escasear, el gestor de memoria virtual mueve las páginas que se han utilizado hace más tiempo de cada uno de los procesos.
En sistemas Windows, estas páginas se almacenan en archivos (Pagefile.sys) en la raíz de una partición.
El gestor de memoria Windows tiene las siguientes partes interesantes.
- Mapa de direcciones virtuales.
- Asignación de páginas.
- Algoritmo de reemplazo de páginas.
- eLe eRre U ó FIFO.
Mapa de direcciones virtuales en Windows.
Cada uno de los usuarios dispone de su propio espacio de direcciones de 32 bits.
Lo que permite a cada usuario disponer de hasta 4 Gigabytes.
De estos 4 Gigabytes el sistema operativo se reserva 2 de direcciones virtuales.
Asignación de páginas en Windows.
Cada proceso de un usuario puede hacer uso de hasta 2 Gigabytes.
El espacio está dividido en páginas de tamaño fijo y cualquier página puede ser cargada en memoria.
Algoritmo de reemplazo de páginas en Windows.
Paginación por demanda con agrupación de páginas.
En el caso de que se produzca un fallo de páginas porque no se encuentra cargada en memoria, se solicita dicha página y se cargan páginas cercanas.
Gestión de la memoria en Windows. FIFO.
El algoritmo FIFO solamente almacena el orden de llegada de las páginas
De modo que al necesitar espacio para una nueva página solamente debe elegir la que fue cargada primero.
Este método tiene el gran problema de que se elimina una página de memoria muy utilizada solo porque es antigua.
Sistema de archivos
Debe ser posible almacenar una cantidad muy grande de información.
La información debe sobrevivir a la conclusión del proceso que la utiliza.
Debe ser posible que varios procesos tengan acceso concurrente a la información.
Los archivos son una colección de datos con nombre.
Pueden ser manipulados : open, close, create, destroy, copy, rename, list.
Los datos dentro del archivo pueden ser manipulados : read, write, update, insert, delete.
El “Sistema de Archivos” es la parte del sistema de administración del almacenamiento responsable, principalmente, de la administración de los archivos del almacenamiento secundario.
Es la parte del S. O. responsable de permitir “compartir controladamente” la información de los archivos.
Se deben proporcionar posibilidades de “respaldo” y “recuperación” para prevenirse contra:
La pérdida accidental de información.
La destrucción maliciosa de información.
Se debe poder referenciar a los archivos mediante “Nombres Simbólicos”
el sistema de archivos debe proporcionar posibilidades de “Cifrado” y “Descifrado”.
Un “Archivo” es un conjunto de registros relacionados
El “Sistema de Archivos” suele contener:
“Métodos de acceso”
“Administración de archivos”
“Administración del almacenamiento auxiliar” almacenamiento secundario.
“Integridad del archivo”
“Mecanismo de abstracción el usuario no tenga que enterarse de los detalles de cómo y dónde está almacenada la información
El nombre de archivo puede estar restringido a un largo máximo, por ejemplo:
- MSDOS: 8 para el nombre, 3 para la extensión
- NTFS y ext*: 255 en el total (nombre + extensión)
En sistemas windows determina el contenido del archivo y la aplicación encargada de manejarlo. Aquí se suele tener solo 1 extensión: archivo.zip.
-En linux no es estricto ni establecido por sistema. suele tener varias extensiones
Estructura de archivos
Los archivos internamente pueden ser estructurados o libres.
Libres son simplemente secuencia de bytes.
Estructurados tienen una organización interna a través de la cual deben ser accedidos los datos.
Archivo, atributos
Los sistemas de archivos guardan, además del nombre del archivo y sus datos, información como fecha, hora, usuario, permisos, etc; los cuales se denominan atributos.
Algunos de los atributos que puede guardar un sistema de archivos son:
Permisos que el dueño del archivo establece sobre el archivo.
Tipos sistemas archivos
Sistemas de ficheros de disco
Son sistemas diseñados para almacenar ficheros en dispositivos de almacenaje de datos, que deben estar conectados directa o indirectamente al ordenador.
Ejemplos:
FAT
NTFS
HFS y HFS+
EXT2/3
Tipos sistemas archivos
Sistemas de ficheros transaccionales
Sirven para asegurar la integridad del sistema comprobando que toda operación debe estar acabada.
ReiserFS Reiser4 Ext3 NTFS (Solo metadatos).
Sistema de ficheros de red
Es un sistema de ficheros que actúa como cliente para un servidor de acceso remoto a ficheros, permitiendo acceso a los ficheros en el servidor.
NFS SMB AFS CIFS
NTFS es el sistema de archivos de sistema MS Windows.
El journaling es un mecanismo por el cual un sistema informático puede implementar transacciones.
También se le conoce como «registro por diario».
Se basa en llevar un journal o registro de diario en el que se almacena la información necesaria para restablecer los datos afectados por la transacción en caso de que ésta falle.
Directorios
-Directorio Raíz: aquel que contiene al resto del sistema de archivos.
-Directorio de trabajo: directorio en el cual se esta ejecutando un proceso,
-Ruta absoluta: ubicación de un archivo o directorio indicando su posición explicitando todos los directorios desde el directorio raíz al elemento.
-Ruta relativa: ubicación de un archivo o directorio indicando su posición respecto al directorio de trabajo actual.
-Directorio Padre: aquel en el cual es contenido un directorio. Se simboliza con punto doble (..).
Organización de directorios
Único nivel (espacio plano)
Dos niveles
En árbol
Grafo acíclico (enlaces)
Grafo general (enlaces sin restricciones)
Unix, sistema de archivos
Formato de la salida
La primera letra indica el tipo de archivo:
d directorio
- archivo normal
b archivo tipo bloque
c archivo tipo carácter
l enlace simbólico
Las 9 siguientes indica los permisos de propietario (3), grupo (3) y otros (3)
Seguido los links
Seguido Propietario y grupo
Después el tamaño
Después la fecha, hora
Y para finalizar el nombre
Seguridad del sistema de archivos
Necesidad de mantener la seguridad de la información:
De daños físicos (integridad)
Copias de seguridad
Accesos indebidos (privacidad)
Comando chmod (Simbólica)
indican los permisos :chmod <who>+j-<permiso><archivo>
Comando chown
chown usuario1 nota
Cambia el dueño del archivo nota adjudicándoselo a usuario1.
chown usuario1 arch1 arch2
Cambia el dueño de la lista de archivos indicada.
Comando chgrp
chgrp tecnicos nota
Cambia de grupo el archivo notas, adjudicándoselo al grupo tecnicos.
chgrp tecnicos arch1 arch2
Cambia el grupo de la lista de archivos.
¿Qué es un usuario?
Se conoce como usuario a la persona que utiliza algo cotidianamente, sea un objeto o un servicio.
Tipos de usuarios Usuario final
Es la persona en específico a la cual se destina un producto o servicio.
Tipos de usuarios Usuario registrado
Refiere aquellas personas que para utilizar un servicio online tienen un identificador y una clave que le permite el acceso a este.
Tipos de usuarios Usuario anónimo
Es el usuario que utiliza a diario un servicio producto sin que nadie lo reconozca,
Tipos de usuarios Usuario tester
Describe a los tipos de usuarios que tienen como fin validar la funcionalidad de un web o programa, teniendo como objetivo principal velar por el correcto funcionamiento del mismo.
Tipos de usuarios Usuario administrador
quien tiene la total autorización de realizar cualquier ajuste o cambio a lo que está desarrollando.
Tipos de usuarios Usuario beta tester
quien busca los medios de que el programa creado logre llegar al usuario final sin presentar ningún error.
Tipos de usuarios Usuario de sistema
Son las personas que se registran en un determinado sistema con el fin de utilizar un servicio que este ofrece.
Cuentas en Windows, usuarios
Las cuentas de usuario proporcionan acceso a los recursos locales
Se almacenan en una base de datos de seguridad local
Inicio Programas H. Administrativas Administrador de equipos
Administración de permisos y derechos de usuarios y recursos
Cuentas en Windows, Planificación nuevas cuentas
Determinar requerimientos de Password
Expiracióndepassworddeusuarios temporales
Inculcar a usuarios a usar password seguras
Evitarpasswordobvias Usarpasswordlargas
Cuentas en Windows, Creación de cuentas
Como administrador Inicio Programas H. Administrativas Administrador de equipos
Cuentas en Windows, Practicas aconsejables
Renombrar cuenta de Administrador
Requerir que los usuarios deban cambiar el password (Seguro)
Proporcionar perfiles de usuario estándar
Cuentas en Unix, Usuarios del sistema
root: Administrador (UID 0).
daemon: Ejecuta procesos de servicio del sistema (UID 1).
bin: Propietario de ejecutables (UID 2).
sys: Ficheros de sistema (UID 3).
adm: Ciertos log (UID 4).
nobody: Usuario sin privilegios.
Cuentas en Unix, /etc/passwd
El “Archivo de contraseñas”.
Los campos eparados por “:”
identificador de Inicio Contraseña encriptada uid group-id
varios Home Directory Shell
Cuentas en Unix, /etc/group
El Archivo /etc/group contiene los nombres de grupos y sus identificadores, y define a los usuarios miembros de los grupos.
Los archivos /etc/profile y .profile
Cada usuario de un sistema Unix tiene definido un shell por defecto, un interprete de órdenes que será el programa que le va a servir de interfaz para con el sistema operativo
shell mas estándar (sh), versión mejorada (bash)
Los archivos /etc/profile y .profile
Otro archivo equivalente al .profile es el /etc/profile.
especifican ordenes y variables comunes a todos los usuarios.
Como este archivo es administrado por el root del sistema
Suscribirse a:
Entradas (Atom)