SCP блокирует файл, который он передает?

8

Возникла ситуация, когда у нас есть журнал приложений на сервере AIX. Журнал постоянно записывается из приложения, и у нас есть пользователи в Windows, которые хотят просмотреть файл. Они использовали WinSCP для передачи файла на рабочий стол и открывают его с помощью текстового редактора.

Я думаю, что может произойти, что scp блокирует файл на время передачи, и приложение перестает иметь возможность записи в файл. Причина, по которой я считаю, что файл журнала перестанет расти в случайных точках в течение дня.

Это то, что, возможно, происходит?

ThaDon
источник
Я думаю, что aixтег будет приветствоваться.
Кристиан Чиупиту

Ответы:

8

Почему бы тебе не попробовать это? Начните scp'ing большого файла, затем запустите lsof /path/to/fileна сервере AIX и посмотрите, что говорит колонка FD.

Со страницы руководства 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.

Если вы сделаете это, по крайней мере в Linux, вы увидите, что столбец FD имеет значение «3r», что означает, что он имеет какую-то блокировку чтения, но я не уверен, что означает «3» перед ним.

3dinfluence
источник
К вашему сведению, да, это ставит блокировку чтения на файл! Спасибо!
ThaDon
О, на самом деле маленький r указывает на блокировку только части файла, возможно, scp не проблема ...
ThaDon
1
Это верно, маленький r указывает, что это блокировка байта. Так что теоретически он блокирует только ту часть, которую отправляет в данный момент. Но если вы читаете man-страницу lsof о блокировке, она также говорит, что в некоторых случаях она может сообщать о блокировке некорректно. Вы можете установить эксперимент, в котором у вас большой текстовый файл ... начните scp'ing, а затем сделайте что-то вроде echo "бла-бла-бла" >> текстовый файл. Если это успешно добавит его в конец файла, то я бы сказал, что то, что сообщает lsof, правильно.
3dinfluence
1

Большинство программ Unix не используют блокировку или когда они ее используют, это не является обязательным, поэтому я сомневаюсь, что блокировка останавливает рост вашего журнала. Скорее всего, передача SCP замедляет запись журнала.

Кристиан Чиупиту
источник