O SCP bloqueia o arquivo que está transferindo?


8

Tenha uma situação em que temos um log de aplicativo em um servidor AIX. O log está sendo gravado continuamente no aplicativo e temos usuários no Windows que desejam visualizar o arquivo. O que eles estão fazendo é usar o WinSCP para transferir o arquivo para a área de trabalho e abri-lo usando um editor de texto.

O que acho que pode estar acontecendo é que o scp está bloqueando o arquivo durante a transferência e o aplicativo deixa de poder gravar no arquivo. A razão pela qual acredito que esse é o arquivo de log deixará de crescer em pontos aleatórios durante o dia.

É isso que talvez esteja acontecendo?


Eu acho que uma aixtag seria bem-vinda.
Cristian Ciupitu

Respostas:


8

Por que você não tenta isso? Comece a digitalizar um arquivo grande, depois execute lsof /path/to/fileno servidor AIX e veja o que a coluna FD diz.

Na página do manual lsof:

   FD         is the File Descriptor number of the file or:
                   cwd  current working directory;
                   Lnn  library references (AIX);
                   err  FD information error (see NAME column);
                   jld  jail directory (FreeBSD);
                   ltx  shared library text (code and data);
                   Mxx  hex memory-mapped type number xx.
                   m86  DOS Merge mapped file;
                   mem  memory-mapped file;
                   mmap memory-mapped device;
                   pd   parent directory;
                   rtd  root directory;
                   tr   kernel trace file (OpenBSD);
                   txt  program text (code and data);
                   v86  VP/ix mapped file;
              FD is followed by one of these characters, describing the mode under which the file is open:
                   r for read access;
                   w for write access;
                   u for read and write access;
                   space if mode unknown and no lock
                        character follows;
                   `-' if mode unknown and lock
                        character follows.
              The mode character is followed by one of these lock characters, describing the type of lock applied to the file:
                   N for a Solaris NFS lock of unknown type;
                   r for read lock on part of the file;
                   R for a read lock on the entire file;
                   w for a write lock on part of the file;
                   W for a write lock on the entire file;
                   u for a read and write lock of any length;
                   U for a lock of unknown type;
                   x for an SCO OpenServer Xenix lock on part of the file;
                   X for an SCO OpenServer Xenix lock on the entire file;
                   space if there is no lock.
              See the LOCKS section for more information on the lock information character.
              The FD column contents constitutes a single field for parsing in post-processing scripts.

Se você fizer isso, no Linux, pelo menos, verá que a coluna FD é "3r", o que significa que tem algum tipo de bloqueio de leitura, mas não tenho certeza do que os 3 à sua frente significam.


FYI, sim, ele coloca esse bloqueio de leitura no arquivo! Obrigado!
ThaDon

Oh, realmente pequena r indica um bloqueio em apenas uma parte do arquivo, talvez scp não é o problema, então ...
ThaDon

11
Correto, o pequeno r indica que é um bloqueio de bytes. Então, em teoria, ele está apenas bloqueando a parte que está enviando no momento. Mas se você ler a página de manual lsof sobre bloqueio, também será possível que em alguns casos não seja possível relatar o bloqueio com precisão. Você pode configurar um experimento no qual tenha um arquivo de texto grande ... comece a digitá-lo e faça algo como eco "blá blá blá" >> arquivo de texto. Se isso for adicionado com êxito ao final do arquivo, eu diria que o que lsof está relatando está correto.
precisa saber é o seguinte

1

A maioria dos programas Unix não usa bloqueio ou, quando o utiliza, não é obrigatório, por isso duvido que o bloqueio esteja impedindo o crescimento do seu log. Provavelmente, a transferência do SCP está desacelerando a gravação do log.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.