
Eu uso arrastar e soltar para copiar e mover arquivos. Uma desvantagem disso é que os arquivos podem acabar nos lugares errados. Então, digamos que eu copiei/movi muitos arquivos e pastas para vários destinos diferentes.
Como posso rastrear onde tudo foi parar para ter certeza de que tudo foi copiado/movido para os lugares certos?
Responder1
O que você está pedindo é um "observador do sistema de arquivos".
eu assisto 
iWatch é um programa de monitoramento de sistema de arquivos em tempo real. É um script perl simples para monitorar alterações em diretórios/arquivos específicos e enviar notificações por e-mail imediatamente. Ele lê a lista de diretórios/arquivos do arquivo de configuração xml e precisa de suporte inotify no kernel (Kernel Linux >= 2.6.13).
Existem mais, mas este parece ser o método mais simples, é nativo do Ubuntu e usa inotify (para não sobrecarregar o sistema).
iWatch vem em 2 métodos:
- linha de comando
- daemon
Algumas opções de linha de comando para registro:
-m <email address>
Specify the contact point's email address. Without this option, iwatch will
not send any email notification.
-s <on|off>
Enable or disable reports to the syslog (default is off/disabled)
Alguns exemplos de linha de comando:
iwatch /tmp
monitorar alterações no diretório /tmp com eventos padrão
iwatch -r -e access,create -m cahya@localhost -x /etc/mail /etc
monitore apenas o acesso e crie eventos no diretório /etc recursivamente com /etc/mail como exceção e envie notificação por e-mail para cahya@localhost.
iwatch -r -c "(w;ps -ef)|mail -s '%f was changed' cahya@localhost" /bin
monitore o diretório /bin recursivamente e execute o comando.
iwatch -r -X '\.svn' ~/projects
monitore o diretório ~/projects recursivamente, mas exclua quaisquer diretórios .svn dentro dele. Isso não pode ser feito com uma opção normal '-x', pois '-x' só pode excluir o caminho definido.
Exemplo de arquivo de configuraçãoao usar o modo modo daemon. O registro é feito com opções XML no arquivo de configuração:
<config>
<guard email="myadmin@localhost" name="IWatch"></guard>
<watchlist>
<title>Public Website</title>
<contactpoint email="webmaster@localhost" name="Web Master"/>
<path type="single">/var/www/localhost/htdocs</path>
<path type="single" syslog="on">/var/www/localhost/htdocs/About</path>
<path type="recursive">/var/www/localhost/htdocs/Photos</path>
</watchlist>
<watchlist>
<title>Operating System</title>
<contactpoint email="admin@localhost" name="Administrator"/>
<path type="recursive">/etc/apache2</path>
<path type="single">/etc/passwd</path>
<path type="recursive">/etc/mail</path>
<path type="exception">/etc/mail/statistics</path>
<path type="single" filter="shadow|passwd">/etc</path>
</watchlist>
<watchlist>
<title>Only Test</title>
<contactpoint email="root@localhost" name="Administrator"/>
<path type="single" alert="off" exec="(w;ps -ef)|mail -s %f
root@localhost">/tmp/dir1</path>
<path type="single" events="access,close" alert="off" exec="(w;ps -ef)|mail -s %f
root@localhost">/tmp/dir2</path>
<path type="single" events="default,access" alert="off" exec="(w;ps -ef)|mail -s '%f is
accessed' root@localhost">/tmp/dir3</path>
<path type="single" events="all_events" alert="off">/tmp/dir4</path>
</watchlist>
</config>
Com esta configuração, o iwatch monitorará um único diretório /var/www/localhost/htdocs
sem seus subdiretórios, e qualquer notificação será enviada para o ponto de contato webmaster@localhost. Mas ele monitorará toda a árvore de diretórios /etc/apache2
, incluindo quaisquer subdiretórios criados posteriormente após o início do IWatch. Você também pode usar a criação de exceções aqui se não quiser receber notificação sobre um arquivo ou subdiretório dentro do diretório monitorado.