Armazene os arquivos em /dev/shm/
, já é um ramdisk baseado em tmpfs.
Eu tenho o seguinte script que eu uso para registrar a frequência da CPU. Como mencionado no script, eu armazeno temporariamente a saída no arquivo temp.txt
e depois leio e copio para o arquivo principal com o número da medição. Este processo é repetido 43200 vezes. Portanto, o arquivo freq_log.txt
também é sobrescrito por 43200 vezes!
Minha pergunta: É possível não gravar a saída em um arquivo no disco, mas armazenar na memória (o sistema tem 32 GB de memória) e gravar no disco quando o processo terminar?
Mais uma pergunta. É possível fazer o processo de duas etapas, temp.txt
- > freq_log.txt
em uma linha com a variável de tempos introduzida com uma tabulação.
#!/bin/bash
# Log freq.
echo "Logging started.";
times=0 #counter variable
rm t_log.txt
while [ $times -lt 43200 ]; do # run for ~60 hrs
lscpu | grep "CPU MHz" >> temp.txt #log data in temp.txt
let times=times+1
sleep 5
echo -e "$(cat temp.txt)""\t$times" >> freq_log.txt #add new line on file
rm temp.txt
done
echo "---- finished ----"
Você pode tentar colocar tudo em uma tabela:
logMem=()
for ((i=0;i<2000;i++))
do msg='printf "hello %d\n" $i'
logMem+=("$msg")
done
Em seguida, escreva tudo:
( for msg in "${logMem[@]}"
do echo "$msg"
done ) > logFile.txt
Tags memory ubuntu shell-script