Configuración Avanzada de Impresoras Lógicas y Automatización con Scripts Bash
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 10,14 KB
Configuración de Impresoras Lógicas y Servicios de Impresión
Este documento detalla los servicios necesarios y el proceso de instalación de una impresora lógica diseñada para derivar documentos a dos impresoras físicas distintas, gestionando el acceso desde diferentes grupos de usuarios.
Instalación del Rol de Servidor de Impresión
Para comenzar, es necesario añadir el rol de Servicio de Impresión en el servidor y aceptar su instalación. Una vez instalado, se procede a configurar la impresora lógica a través del Administrador de Impresión, utilizando el asistente de configuración.
Las funciones clave que se pueden instalar como parte de este servicio son:
- Servidor de Impresión: Componente principal para gestionar impresoras y colas de impresión.
- Servicio LPD (Line Printer Daemon): Permite la impresión desde clientes basados en Unix/Linux.
- Impresión en Internet: Habilita la impresión a través de un navegador web.
Software Requerido y Preparación del Cliente
El software esencial para la administración remota es RSAT (Remote Server Administration Tools).
Para instalar y gestionar estas herramientas, es imprescindible iniciar sesión en el equipo cliente con una cuenta que posea privilegios de administrador. Esto permitirá la correcta interacción y gestión del servidor de impresión de forma remota.
Pasos de Configuración y Habilitación de Acceso Remoto
- Instalación de RSAT en el Cliente: Asegúrese de que RSAT esté instalado en el equipo cliente y que se esté utilizando una cuenta con privilegios de administrador.
- Habilitar Administración Remota en el Servidor: Verifique que la administración remota esté habilitada en el servidor.
- Configuración del Firewall del Servidor: Es crucial configurar el firewall del servidor para permitir el acceso necesario. Esto incluye reglas para:
- Acceso a la red COM+
- Administración remota de registro de eventos (entrada NP)
- RPC (Remote Procedure Call)
- RPC-EPMAP (RPC Endpoint Mapper)
- Ajustes de Política de Seguridad en el Cliente: Para una gestión adecuada, es posible que deba ajustar las políticas de seguridad local en el cliente.
- Ejecute
secpol.msc
. - Navegue a Directivas de seguridad local.
- Ajuste la configuración de Control de cuentas de usuario: modo de aprobación de administrador para la cuenta predefinida Administrador según sea necesario.
- Ejecute
- Reiniciar el Equipo: Después de realizar los cambios, reinicie la máquina para que las configuraciones surtan efecto.
- Acceder al Administrador del Servidor: Una vez reiniciado, localice y abra la herramienta Administrador del Servidor en el cliente para gestionar el servidor de impresión.
Scripts de Automatización y Administración de Sistemas
A continuación, se presentan varios scripts Bash útiles para tareas de administración de sistemas, incluyendo la gestión de usuarios, operaciones de archivos y configuración de almacenamiento RAID.
Script para Identificar Usuarios sin Directorio Personal
Este script itera a través de las entradas de usuarios (aunque la sintaxis original de getent
es inusual) y muestra aquellos usuarios que no tienen un directorio personal asociado en /home
.
for linea in $(getent passwd/group/hosts/protocols)
do
usuario=$(echo $linea | cut -d ":" -f1)
if ! [ -d /home/$usuario ]
then
echo $usuario
fi
done
Función volver
: Retorno al Menú Principal
Esta función proporciona una interfaz para que el usuario decida si desea regresar al menú principal del programa o finalizar la ejecución.
function volver () {
echo "¿DESEA VOLVER AL MENU? s/n"
read volver
if [ "$volver" = "S" ] || [ "$volver" = "s" ]
then
menu
elif [ "$volver" = "N" ] || [ "$volver" = "n" ]
then
echo "FIN DE PROGRAMA"
else
clear
echo "OPCION INTRODUCIDA INCORRECTA"
volver
fi
}
Función empaquetar
: Creación de Archivos Tar
Permite empaquetar directorios o archivos específicos en un archivo .tar
en la ruta deseada.
function empaquetar () {
echo "Introduce la ruta donde deseas almacenar la copia"
read almacen
cd "$almacen" || { echo "Error: El directorio de almacenamiento no existe."; return 1; }
echo "Introduce la ruta de la que desea hacer copia"
read ruta
echo "Introduce el nombre que quieres darle al archivo"
read nombre
if [ -d "$ruta" ]
then
echo "¿Deseas empaquetar un fichero? S/N"
read opf
if [ "$opf" = "S" ] || [ "$opf" = "s" ]
then
echo "Introduce el nombre del fichero"
read fichero
if [ -f "$fichero" ]
then
tar cvf "$nombre.tar" "$ruta/$fichero"
else
echo "El fichero no existe"
fi
else
tar cvf "$nombre.tar" "$ruta"
fi
else
echo "El directorio no existe"
fi
volver
}
Función comprimir
: Creación de Archivos Tar.gz
Similar a la función empaquetar
, pero comprime el contenido utilizando gzip, resultando en un archivo .tar.gz
.
function comprimir () {
echo "Introduce la ruta donde deseas almacenar la copia"
read almacen
cd "$almacen" || { echo "Error: El directorio de almacenamiento no existe."; return 1; }
echo "Introduce la ruta de la que desea hacer copia"
read ruta
echo "Introduce el nombre que quieres darle al archivo"
read nombre
if [ -d "$ruta" ]
then
echo "¿Deseas comprimir un fichero? S/N"
read opf
if [ "$opf" = "S" ] || [ "$opf" = "s" ]
then
echo "Introduce el nombre del fichero"
read fichero
if [ -f "$fichero" ]
then
tar czvf "$nombre.tar.gz" "$ruta/$fichero"
else
echo "El fichero no existe"
fi
else
tar czvf "$nombre.tar.gz" "$ruta"
fi
else
echo "El directorio no existe"
fi
volver
}
Función desempaquetar
: Extracción de Archivos Tar
Permite extraer el contenido de un archivo .tar
, filtrando por mes y especificando rutas de origen y destino.
function desempaquetar () {
echo "Introduce el mes por el que quieras filtrar"
read mesemp
echo "Introduce la ruta de origen"
read origen
echo "Introduce la ruta de destino"
read destino
# Nota: La siguiente línea asume un formato de salida específico de 'ls -l' y un mes fijo.
# Puede ser frágil si el formato de 'ls -l' o el mes cambian.
nombre=$(ls -l /home/user | grep "$mesemp" | grep ".tar" | cut -c 45-80)
echo "$nombre"
cd "$origen" || { echo "Error: El directorio de origen no existe."; return 1; }
tar xvf "$nombre" -C "$destino"
volver
}
Función copiaseg
: Copia de Seguridad
Realiza una copia de seguridad de un archivo o directorio, con la opción de comprimirla, y le asigna un nombre basado en la fecha y hora actuales.
function copiaseg () {
fecha=$(date +%H.%M_%d-%m-%Y)
echo "¿Deseas la copia comprimida? (si/no)"
read op
echo "Introduce la ruta donde deseas almacenar la copia"
read almacen
cd "$almacen" || { echo "Error: El directorio de almacenamiento no existe."; return 1; }
echo "Haciendo copia..."
# Nota: Las variables 'nombre', 'ruta' y 'fichero' no están definidas dentro de esta función.
# Se asume que son variables globales o se pasan de alguna manera.
if [ "$op" = "si" ]
then
tar czvf "$nombre-$fecha.tar.gz" "$ruta/$fichero"
else
tar cvf "$nombre-$fecha.tar" "$ruta/$fichero"
fi
echo "Copia Completada con éxito"
}
Función particionar_primer_disco
: Particionamiento de Disco
Inicia la utilidad fdisk
para particionar el primer disco (/dev/sdb
), proporcionando instrucciones básicas para crear, seleccionar formato y guardar particiones.
function particionar_primer_disco () {
clear
echo "PARTICIONAR EL PRIMER DISCO"
echo "n es para nueva partición"
echo "t es para elegir número del formato, si no lo tenemos claro escribimos L"
echo "w es para guardar"
fdisk /dev/sdb
menu
}
Función copiar_tabla_particiones
: Copiar Tabla de Particiones
Copia la tabla de particiones del primer disco (/dev/sdb
) al segundo disco (/dev/sdc
) utilizando sfdisk
.
function copiar_tabla_particiones () {
clear
echo "COPIAR TABLA DE PARTICIONES"
sfdisk -d /dev/sdb | sfdisk -f /dev/sdc
menu
}
Función crear_raid_md0
: Creación de RAID 0
Crea un dispositivo RAID 0 (striping) llamado /dev/md0
utilizando las particiones /dev/sdb1
y /dev/sdc1
.
function crear_raid_md0 () {
clear
echo "CREAR RAID"
mdadm --create /dev/md0 --level 0 --raid-devices=2 /dev/sdb1 /dev/sdc1
menu
}
Función caracteristicas_raid
: Verificación de RAID
Muestra las características y el estado del dispositivo RAID /dev/md0
utilizando cat /proc/mdstat
y mdadm --detail
.
function caracteristicas_raid () {
clear
echo "CARACTERISTICAS DEL RAID"
cat /proc/mdstat
mdadm --detail /dev/md0
menu
}
Función formatear_raid_ext3
: Formateo de RAID
Formatea el dispositivo RAID /dev/md0
con el sistema de archivos ext3.
function formatear_raid_ext3 () {
clear
echo "FORMATEAR"
mkfs.ext3 /dev/md0
menu
}
Función montar_raid_md0
: Montaje de RAID
Monta el dispositivo RAID /dev/md0
en el directorio /mnt/raid0
.
function montar_raid_md0 () {
clear
echo "MONTAR"
mount /dev/md0 /mnt/raid0
menu
}