Eu queria apenas comentar a excelente resposta de troyengel acima, mas falta o representante no serverfault para fazê-lo.
Uma correção é que deve haver um espaço entre -aq e --delete.
Além disso, criei um script de espelhamento que verificará o bloqueio de arquivo initado na unidade / tmpfs e espelhará do disco para a RAM a primeira execução, e da RAM para o disco a partir de então:
#!/bin/sh
if [ -f /workspace/z/some/deep/location/inited ]; then
ionice -c2 -n7 nice -n 19 rsync -aq --delete /workspace/* $HOME/workspace 1>/dev/null
else
ionice -c2 -n0 nice -n 19 rsync -aq --delete $HOME/workspace/* /workspace 1>/dev/null
fi
Observe que seu bloqueio deve estar em / z / deep / location, de modo que sempre seja o último arquivo sincronizado, para evitar a perda de dados.
Eu também incluí parâmetros legais e de ionização para que o espelhamento inicial seja de alta prioridade, e o espelhamento de RAM para o disco tenha prioridade menor.
Se você for corajoso, use -c1 -n7 para espelhamento inicial em tempo real e, se você espera tempo ocioso freqüente, pode usar o ionice com -c3 e nenhum sinalizador -n para espelhar apenas quando o disco não estiver em uso.
Eu salvei este script em / usr / bin / Mirror,
e executá-lo a cada cinco minutos com o cron.
crontab -e
*/5 * * * * /usr/bin/Mirror
Isso é especialmente útil se você quiser armazenar seus arquivos de trabalho em um disco rígido criptografado, mas trabalhe neles na RAM.
Se você deseja executar o espelhamento na inicialização e no desligamento do sistema, provavelmente você pode usar o / etc / inittab
id0:26:once:/usr/bin/Mirror