Ho bisogno di creare un file di text che dovrebbe contenere dati di text casuali che possono essere letti dall'uomo. So che possiamo usare /dev/urandom
e /dev/random
per get dati casuali. Ma non è leggibile dagli esseri umani. Devo creare un file che contiene il formato di text random. C'è un modo per farlo?
Possiamo farlo seguendo il command
base64 /dev/urandom | head -c 10000000 > file.txt
Crea un file con dimensione file.txt di 10 MB.
get l'output di:
tr -dc A-Za-z0-9 </dev/urandom
e lo pipa su un file.
È ansible utilizzare il command head con -c o -n per limitare la dimensione del file
esempio per generare un file a.txt da 1 kB:
tr -dc A-Za-z0-9 </dev/urandom | head -c 1024 > a.txt
base64
sembra solo emettere caratteri alfanumbersci plus /
e +
.
Mi piace questo per get più personaggi di "punteggiatura", come
'[:punct:]' Punctuation characters; in the 'C' locale and ASCII character encoding, this is ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
Quindi utilizzare questo:
'[:graph:]' Graphical characters: '[:alnum:]' and '[:punct:]'
e usate tr
per rimuovere singole citazioni 'backticks `e backslashes \
tr -dc '[:graph:]' < /dev/urandom | tr -d \''\\'\` | head -c [size]
l'opzione -c
size per head
può avere un suffisso moltiplicatore: b 512, kB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024 e così via T, P, E, Z, Y.
Se non si dispone di / dev / urandom (perché forse si utilizza una console GitBash), è ansible utilizzare:
openssl rand 33000 -base64 -out dump.txt