Максимальное время дескриптор файла может быть сохранено

"USB-устройство" обычно содержит немного (окна) файловая система FAT, которая не знает о пользователях и полномочиях. При перемещении файла от Вас корневой каталог к тому USB-устройству файл освободит всю информацию о владельце и исправит полномочия. При копировании его назад в корневой каталог, этому дадут некоторого "случайного" владельца и разрешение. Файлы, вероятно, принадлежат корню теперь.

Один способ задержать все восстанавливает Ваше последнее резервное копирование. - если у Вас есть тот.

Кроме того, можно зафиксировать его вручную. Необходимо смочь зафиксировать владельца с sudo chown -R $USER /home/$USER/. Этого должно уже быть достаточно для входа в систему снова.

Затем существуют, вероятно, все еще ошибочные permissons. (Много из x при выполнении ls -l.) Можно использовать chmod зафиксировать их. Лучшая вещь, которую можно, вероятно, сделать, find ~ -type f -exec chmod a-x {} \; исправить большинство полномочий.

3
04.11.2014, 04:46
1 ответ

Если вы используете join :

$ join -t, -a 1 -a 2 -j 1 -e ' NA' -o auto file1 file2
123, 234, abc
345, 789, dnc
678, 900, NA
-121--166984-

Проверьте наличие файлов: /etc/logrotate.d

Если это так, удалите все файлы, относящиеся к тому, что вы не хотите вращать. Но будьте осторожны с удаляемыми файлами, убедитесь, что у вас есть метод очистки файлов для всех файлов, которые вращаются с logrotate, иначе вы рискуете пробудить один день и не понять, как ваша файловая система закончилась дисковое пространство.

Обновление

Несколько файлов можно указать в одном файле в каталоге logrotate.d , например файл syslog . Это также происходит в том месте, где должен быть указан журнал сообщений , о котором вы упомянули.

/etc/logrotate.d/syslog

/var/log/messages 
/var/log/secure 
/var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

Update # 2

Эта команда используется для проверки того, что происходит при повороте файлов журнала - syslog, а не logrotate:

grep -rni "message" /etc/cron.*/*

В системах Debian со вкусом syslog ротация может управляться ежедневным скриптом cron, который обычно находится в /etc/cron.daily/sysklogd Моя команда grep должна помочь определить, верно ли это в вашем случае (даже если вы находитесь на RHEL).

Дополнительную информацию можно найти здесь: http://www.ducea.com/2006/06/06/rotating-linux-log-files-part-1-syslog/

Также проверьте: grep -rni «message »/etc/rsyslog.d/*

-121--166959-

Если я правильно вас понимаю, вы ищете решение, как предложено здесь . Таким образом, как предложено в этом ответе, я хотел бы увидеть, есть ли опция, использующая exec . Итак, когда я сделал google поиск linux добавить с помощью дескриптора файла , я получил этот ответ от пользователя Gilles .

Суть его ответа заключается в том, что, по-моему, вы ищете.

exec 5>/tmp/foo       # open /tmp/foo for writing, on fd 5
while true; do        # 
  echo "Hello" >&5    # write to fd 5, i.e. /tmp/foo
done                  # 

Что касается максимального времени, в течение которого дескриптор файла может оставаться открытым, я полагаю, что пока цикл завершается, он останется открытым, так как мы не закрываем дескриптор файла здесь. Вы можете найти больше информации об ответе, с которым я связался.

1
27.01.2020, 21:31

Теги

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