Você pode descobrir usando "strace chmod 03755" no respectivo arquivo ". Você pode adicionar strace à sua imagem do busybox.
Estou escrevendo um script de inicialização para um daemon que é executado dentro de uma instalação Linux incorporada. Isso significa que chmod
é do BusyBox v1.24.2.
Eu não quero causar ciclos de gravação desnecessários em mídia flash.
É por isso que estou querendo saber se a emissão de chmod 03755
(com umask 022
) em um diretório resultará em qualquer E / S de gravação em disco.
Em outras palavras, é necessário inserir uma verificação se as permissões do diretório já estão configuradas corretamente e somente executar o chmod quando as permissões estão incorretas?
Ou as permissões de um diretório verificam o esforço desperdiçado porque busybox chmod
não resultará em nenhuma E / S de gravação em disco quando as permissões não precisarem de nenhuma alteração?
Você pode descobrir usando "strace chmod 03755" no respectivo arquivo ". Você pode adicionar strace à sua imagem do busybox.
Minha solução menos ideal, por enquanto, é imprimir o número de gravações antes e depois do comando.
Primeiro desabilite o cache de gravação em disco :
# hdparm -W 0 /dev/sda
Depois, tento excluir as gravações em disco de outros processos, repetindo o comando stat do disco do kernel algumas vezes:
# cat /sys/block/sda/stat | awk '{ print $5 }';chmod 03755 /opt/etc/tinydns;cat /sys/block/sda/stat | awk '{ print $5 }'
1725
1725
# cat /sys/block/sda/stat | awk '{ print $5 }';chmod 03755 /opt/etc/tinydns;cat /sys/block/sda/stat | awk '{ print $5 }'
1725
1725
# cat /sys/block/sda/stat | awk '{ print $5 }';chmod 03755 /opt/etc/tinydns;cat /sys/block/sda/stat | awk '{ print $5 }'
1725
1725
Eu acho que, neste caso, o chmod
não emite nenhuma atividade de saída / gravação de disco.