existe uma maneira de fornecer scripts de pós-montagem e pré-montagem no Linux?
Estou tentando fazer alguns scripts na mídia de armazenamento quando montados e antes da montagem (por exemplo, para sincronização).
Qualquer ajuda apreciada.
existe uma maneira de fornecer scripts de pós-montagem e pré-montagem no Linux?
Estou tentando fazer alguns scripts na mídia de armazenamento quando montados e antes da montagem (por exemplo, para sincronização).
Qualquer ajuda apreciada.
Respostas:
Se você está tentando fazer isso para as pessoas que estão chamando o comando /sbin/mount
e /sbin/umount
, tudo o que você precisa fazer é criar um programa de wrapper para ambos e programar o que você deseja nesses programas de wrapper.
Um programa de wrapper que está sendo substituído pelo /sbin/mount
programa de wrapper que chama o real /sbin/mount
(renomeado para algo como /sbin/mount-real
ou /sbin/umount-real
). Para impedir que alguém chame o programa real, use permissões de grupo para restringi-lo e defina o bit SGID nos programas de wrapper.
Se você deseja corrigir a mount(2)
chamada da biblioteca, isso é um esforço e provavelmente difícil e provavelmente não aconselhável, pois isso pode causar problemas no processamento de sistemas internos, especialmente durante a inicialização e o desligamento.
Mesmo com um programa de wrapper, você provavelmente teria que testá-lo minuciosamente para evitar interferência do sistema e fazer os ajustes apropriados.
Provavelmente, você pode usar o gancho do kernel inotify , embora um evento de pré-desmontagem possa ser muito difícil de capturar, pois não tenho certeza se há um evento de inotify enviado antes da desmontagem do diretório.
/media
ou /mnt
), mas não se um sistema de arquivos tiver sido montado nesse diretório.
A solução mais simples que provavelmente funcionará para sempre é pesquisar o /etc/mtab
or /proc/mounts
. Depois que uma alteração nesse arquivo é feita, significa que algo foi montado ou desmontado. Então você tem que verificar lá o dispositivo que deseja.
O Udev não é a melhor solução, pois apenas informa se um dispositivo está conectado. Não diz se o dispositivo foi montado ou não. Às vezes, isso pode funcionar, mas é uma solução hacky que, em algum momento, irá quebrar e você estará arrancando os cabelos.
você pode escrever uma regra do udev para fazer isso. Eu tenho algo usado como este para fazer backup automaticamente coisas para uma unidade USB. Coisas divertidas.