O busybox chmod 03755 gera alguma E / S de gravação de disco quando as permissões de diretório já estão definidas corretamente?

1

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?

    
por Pro Backup 06.12.2016 / 23:42

2 respostas

0

Você pode descobrir usando "strace chmod 03755" no respectivo arquivo ". Você pode adicionar strace à sua imagem do busybox.

    
por 07.12.2016 / 01:36
0

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.

    
por 07.12.2016 / 19:47

Tags