Estaba simplificando mi auto instalador de ISPCONFIG para que sea más sencillo y más automático de usar y una de las cosas que tiene es la clave de mysql, así que que me a dado por generar la contraseña para que el usuario no tenga que escribirla y he llegado hasta este comando:
Generar claves aleatorias en bash
cat /dev/urandom| tr -dc '0-9a-zA-Z'|head -c 8
La salida:
XiunRWVM
También podemos añadirle simbolos:
cat /dev/urandom| tr -dc '0-9a-zA-Z-@#'|head -c 8
j2q6P#gs
O hacerla más larga
cat /dev/urandom| tr -dc '0-9a-zA-Z@#-'|head -c 22
ofSMeuWYdDVl3zMVMyLSDe
Y tengo que adminitirlo el comando tr es nuevo para mi:
man tr
NAME
tr – translate or delete charactersSYNOPSIS
tr [OPTION]… SET1 [SET2]DESCRIPTION
Translate, squeeze, and/or delete characters from standard input, writing to standard output.-c, -C, –complement
use the complement of SET1-d, –delete
delete characters in SET1, do not translate-s, –squeeze-repeats
replace each input sequence of a repeated character that is listed in SET1 with a single occurrence of that character-t, –truncate-set1
first truncate SET1 to length of SET2–help display this help and exit
–version
output version information and exit
Para mi es más que suficiente, aunque buscando y buscando he encontrado esta web en la que explica varios metodos y hasta una variante del comando que deje más arriba: 10 formas de generar claves en bash
Con uno de los que me quedo que hay en esa web es con este:
randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}
Y con esta otra que las dos son variantes del de arriba:
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
Espero les sirvan tanto como a mi 🙂