Кто-то очень долго блокирует /etc/group - что делать?

Замена строк, имеющих Count, на Count = его вхождению

Предполагая, что Count является первым словом в строке

awk -v c=1 'sub(/^Count.*/, "Count = " c) {c++}; {print}' /tmp/rand_file1

Предполагая, что Count является первым словом в строке, но ему может предшествовать ноль или более пробелов, пробелы не сохраняются.

awk -v c=1 'sub(/^[[:blank:]]*Count.*/, "Count = " c) {c++}; {print}' /tmp/rand_file1
0
25.02.2020, 04:15
2 ответа

Вам может повезти! Когда-то была ошибка, из-за которой файлы.lock не разблокировались после выдачи useradd, хотя я помню, что это был REHL 9 или что-то в этом роде.

Если вы читаете файлы, они могут содержать PID, соответствующий последнему известному актеру в файле. Кроме того, вы можете добавить пользователя, и он будет успешно завершен, несмотря на то, что в STDout будет напечатано противоположное. Вы используете ОС 2017/2018, поэтому я могу только надеяться, что она не содержит ошибки, подобной той, что я описал.

Ресурс:https://access.redhat.com/errata/RHBA-2004:472

2
28.04.2021, 23:22

Попробуйте

lslocks

покажет файлы, заблокированные с помощью flock вручную или приложениями.

Попробуйте использовать lsof, чтобы получить пользователя, который заблокировал файл.

lsof /etc/.group.swp 

Тоже должно показывать подобное.

~]# lsof /etc/.group.swp
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
vim     27611 root    4u   REG  253,1    12288 6299017 /etc/.group.swp

или, возможно,

vim /etc/group 

vim покажет (, если файл заблокирован ), что он заблокирован, кем, был ли файл изменен и т. д.

Вывод vim на заблокированный файл

E325: ATTENTION
Found a swap file by the name "/etc/.group.swp"
          owned by: root   dated: Mon Feb 24 14:49:08 2020
         file name: /etc/group
          modified: no
         user name: root   host name: testfoonameserver101
        process ID: 27611 (still running)
While opening file "/etc/group"
             dated: Fri Feb 21 09:23:49 2020
3
28.04.2021, 23:22

Теги

Похожие вопросы