Mostrando entradas con la etiqueta script. Mostrar todas las entradas
Mostrando entradas con la etiqueta script. Mostrar todas las entradas

miércoles, 8 de junio de 2022

Script para reiniciar audio en Mac

Para restablecer el sistema de audio en OS X, la forma en la que lo hacía era buscar el comando para ejecutarlo desde terminal.

sudo -s killall coreaudiod

Dado que he necesitado varias veces hacerlo y no recuerdo el mandato lo asigno a un atajo de teclado.

  • Abrir Automator para crear un servicio. Escoger opción "Quick Action"
  • Agregar el paso "Run Shell Script"
  • Escribir el código:
osascript -e 'do shell script "sudo -s killall coreaudiod" with administrator privileges'
  • Indicar "no input" en cualquier aplicación como entrada a recibir
  • Guardar
(De esta forma se ejecuta el comando solicitando la contraseña necesaria para aprobar la acción)



Para agregar un atajo de teclado
  • Ir a Preferencias del sistema - Teclado - Atajos - Servicios
  • En el listado debe estar el script creado anteriormente (Una vez creado como Acción rápida y guardado con el nombre indicado se muestra en esa sección) Agregar una combinación de teclas a utilizar para ejecutar el script.

Una vez hecho todo esto al usar el atajo de teclado se ejecuta el script solicitando la autorización necesaria.




miércoles, 30 de septiembre de 2015

Shell script para crear usuarios en linux (Debian)


A continuación se plantea un shell script que recibe como parámetro el nombre base para los usuarios a crear, el número de usuarios a generar y el grupo al que han de pertenecer. El número de usuarios es opcional siendo por defecto 5. El grupo al que han de pertenecer es opcional, siendo por defecto el nombre base que se da para generar los usuarios. No se realiza control de valides de argumentos, solamente el orden según se indica en el mensaje de uso.


#! /bin/bash

# Declaración de funciones
function mensaje_uso(){
    echo "ERROR: Número de parámetros incorrecto." >&2
    echo "USO: $0 <nombre_base> [-n <numero_de_usuarios>] [-g <nombre_de_grupo>]" >&2
    exit $salida  
}

function crea_grupo(){
    sentencia_crea_grupo="groupadd $nombre_grupo"
    $sentencia_crea_grupo 2> /dev/null #Supuesto de error es porque ya existe
}

function crea_usuario(){
    sentencia_crea_usuario="useradd -g $nombre_grupo $nombre_usuario"
    $sentencia_crea_usuario 2> /dev/null #Supuesto de error es porque ya existe
}

function asigna_grupo(){
    sentencia_cambio_grupo="adduser $nombre_usuario $nombre_grupo"
    $sentencia_cambio_grupo 1>&2> /dev/null #Nos aseguramos de que formen parte del grupo exigido
}

function asigna_passwd(){
    echo $nombre_usuario:$nombre_base | chpasswd    
}

# Inicialización de variables
ENE="-n"
GE="-g"
nombre_grupo=$1
nombre_base=$1
numero_usuarios=5
salida=1

# Control simple de argumentos
case "$#" in
    1)  case $1 in
            -h | --help | -help )
            salida=0 
            mensaje_uso 
            ;;
        esac
        #Se mantiene los valores por defecto
    ;;    
    3)
        if [ "$2" = "$ENE" ]; then
            numero_usuarios=$3
        else
            if [ "$2" = "$GE" ]; then
            nombre_grupo=$3
            else
                mensaje_uso
            fi
        fi
    ;;
    5)
        if [ "$2" = "$ENE" ]; then
            if [ "$4" = "$GE" ]; then
                numero_usuarios=$3
                nombre_grupo=$5
            else
                mensaje_uso
            fi
        else
            mensaje_uso
        fi
    ;;
    *) mensaje_uso
    ;;
esac

# Cuerpo
crea_grupo
 
for (( indice=1; indice <= $numero_usuarios; indice++ ))
    do
    nombre_usuario=$nombre_base$indice
    crea_usuario
    asigna_grupo
    asigna_passwd
done

exit 0


Se ha realizado en una máquina con Debian 7.0 (Wheezy) 

miércoles, 4 de julio de 2012

Eliminar sin pasar por la papelera en Mac

Cuando nos pasamos de Windows a Mac uno de los primeros golpes sufridos es cuando estamos acostumbrados a eliminar archivos definitivamente sin enviarlos a la papelera presionando Shift + Supr. En Mac nos encontramos como si nos faltara esa funcionalidad ya que solo vemos la opción de eliminarlos y que vayan a la papelera. En Mac para liberar ese espacio y eliminar definitivamente los ficheros la opción visible que nos dan es el vaciar la papelera.

Shift + supr en MAC

Desde OS X El Capitan se puede realizar presionando option + Command + borrar.

En versiones anteriores 

Tendremos que hacerlo con mandatos desde terminal o programarlo mediante automator.

Abrimos automator, que lo tendremos entre nuestras aplicaciones.
Logo Automator

Elegimos la plantilla para flujo de trabajo de Servicio.
Seleccionada plantilla de trabajo: Servicio
Tenemos tres columnas, en la de la derecha, en el menú desplegable que dice: «El servicio recibe la selección de» archivos o carpetas «en» Finder.

En la columna central buscamos y damos doble clic, o arrastramos a la zona centrar de la columna derecha: Obtener los ítems del Finder seleccionados; y Ejecutar el script Shell.

En la sección de «Ejecutar el script shell» se escoge del menú desplegable donde dice «pasar datos de entrada» como argumentos.

Modificamos el código dejándolo de la siguiente forma:


for f in "$@"
do
rm -R -f -d "$f"
done


Finalmente se guarda: Archivo—guardar. y le damos un nombre, por ejemplo: ShiftSupr
Ventana de trabajo de Automator

Luego abrimos Preferencias del sistema.

En la sección Hardware, clic en Teclado.

Seleccionado la opción de «Funciones rápidas de teclado» en la cabecera. Tendremos dos cajas, en la de la izquierda seleccionamos «Servicios» y en la derecha nos dirigimos a la sección de «Archivos y carpetas» donde tendremos el nombre del archivo que acabamos de guardar ShiftSupr. Damos un clic en la parte derecha para poder asignar el atajo de teclado y una vez que se activa la edición presionamos las teclas, como por ejemplo: shift+cmd+S. Intentar, por seguridad, que sea una combinación que no se presione fácilmente por error.

De este modo al seleccionar archivos o carpetas y presionar la combinación de teclas se eliminarán sin ir a la papelera, liberando de espacio al disco automáticamente.

Para más información sobre el mandato rm. Podéis abrir el terminal y escribir: man rm y os mostrará la descripción con las opciones y su significado.

El script eliminará archivos y carpetas sin pedir confirmación, si están bloqueados no los eliminará porque no eres un administrador. Si eliminas algo que no querías tendrás que buscar programas de recuperación de datos.

Los archivos .workflow creados con Automator se guardan en: «~/Library/Services»

Realizado y probado en:
—Mac OS X 10.6.8 Snow Leopard
—Mac OS X 10.9.1 Mavericks
—Mac OS X 10.10.1 Yosemite
—Mac OS X 10.11.3 El Capitan

miércoles, 6 de abril de 2011

Bloquear sesión en Mac mediante teclado

Cómo conseguir bloquear la sesión en Mac, para en algún momento dejarla y no tener que preocuparnos de curiosos.
  •  Tras el salvapantallas o al bloquear (reposar) la pantalla
Ir a Preferencias del Sistema
En la sección de Personal ir a Seguridad
Activar la casilla de Solicitar contraseña... tras iniciarse el reposo o el salvapantallas.
Una vez hecho esto podemos; activar el salvapantallas con exposé o bloquear la pantalla con el atajo Ctrl+Shift+botón de expulsar disco. Al intentar activar la pantalla, nos pedirá contraseña.

  • Configurando un atajo de teclado para que ejecute un script
Logo Automator

Abrir Automator de entre las aplicaciones
La plantilla a elegir es la de Servicio
Donde dice El servicio recibe, seleccionamos: sin datos de entrada
Añadimos un script shell (buscamos en el panel izquierdo y lo arrastramos al derecho)
En la ventana de código dejamos solo la siguiente línea:

'/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession' -suspend


Podemos darle a ejecutar y probarlo antes de guardarlo. Debería bloquearse la sesión y mostrar la pantalla de iniciar sesión.

Si todo ha ido bien, guardamos (en archivo-guardar)
Le damos un nombre como ejemplo: bloqpantalla

Ventana de trabajo de Automator


Entramos a Preferencias del Sistema
En la sección Hardware ir a Teclado
Clic en Funciones rápidas de teclado
En la columna izquierda, escogemos Servicios
En la columna derecha, entre el listado veremos a nuestro servicio: bloqpantalla
Seleccionamos bloqpantalla y damos clic en la parte derecha de la fila para agregarle un atajo de teclado. (por ejmplo alt+cmd+L)

Preferencias del sistema: Funciones rápidas de teclado.

Una vez que presionemos la combinación de teclas, se bloqueará la pantalla.

Se ha utilizado:
—Mac OS X 10.6.8