Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Автоудаление файлов из определенной папки при завершении работы Ubuntu  (Прочитано 2884 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн qualit

  • Автор темы
  • Любитель
  • *
  • Сообщений: 85
    • Просмотр профиля
Здравствуйте.
Возникла потребность автоматического удаления файлов определенной папки при завершении работы системы. То есть такая себе автоматическая очистка папки.
Пробовал так:
В файле /etc/fstab дописывал строку - tmpfs   /путь к папке      tmpfs   defaults   0   0
И вроде бы все ок. После перезагрузки или завершения работы файлы из папки исчезают, но если привожу fstab к прежнему виду, то файлы чудесным образом появляются снова.
Может кто-то знает как справиться с таким заданием?
Спасибо.

Оффлайн qualit

  • Автор темы
  • Любитель
  • *
  • Сообщений: 85
    • Просмотр профиля
Необходимо чтобы файлы удалялись навсегда.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Необходимо чтобы файлы удалялись навсегда.
Они и удаляются. То что появляются - старье, которое было до подключения в temp
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Необходимо чтобы файлы удалялись навсегда.
Они и удаляются. То что появляются - старье, которое было до подключения в temp
Именно.
В дополнение к уже сказанному, строго советую ограничить размер tmpfs. По умолчанию твой раздел равен размеру оперативки, что может привести к печальным последствиям.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн qualit

  • Автор темы
  • Любитель
  • *
  • Сообщений: 85
    • Просмотр профиля
Спасибо почитаю как ограничить.
« Последнее редактирование: 03 Ноября 2016, 13:41:03 от Azure »

quatro

  • Гость
qualit, например строчка в fstab:

tmpfs      /var/tmp    tmpfs   rw,size=10m         0       0
tmpfs      /tmp        tmpfs   rw,size=100m        0       0

m - мегабайты

Здесь приведен пример того, как ограничить размер потребляемой оперативки. Но это не значит, что я кому-то советую именно логи либо что-то другое конкретное в оперативку выносить. ТС первоначально хотел выносить "некоторый файл некоторой папки". Так пусть себе и выносит.

Про опасность лишить себя логов ниже уже достаточно рассказали. Так что если кто это делает, должен знать зачем и почему. С учетом осознания такой опасности.

Для чего же тогда могут потребоваться строчки в том виде, как я их привел? Для непонимающих можно сказать так: если вы не знаете зачем это нужно, то вам это точно не нужно. Ну а для остальных может иногда и пригодиться.

(Нажмите, чтобы показать/скрыть)

Дополнение написано по просьбе авторитетных пользователей.
« Последнее редактирование: 03 Ноября 2016, 21:57:01 от anchos »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
size=20%
Или сколько там…
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
(Нажмите, чтобы показать/скрыть)

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Karl500, вполне себе не офф.
Я бы еще добавил что вообще логи в tmpfs выносить - тоже не самая лучшая идея... нужно по крайней мере понимать что случись с такой системой что-нибудь что потребует перезагрузки и понять что произошло не будет никакой возможности без логов.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Вот кстати да… Насоветуют всякой херни, потом годами эта херня по всему интернету гуляет, никаким дихлофосом не выведешь.
« Последнее редактирование: 03 Ноября 2016, 21:36:19 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
В дополнение к уже сказанному, строго советую ограничить размер tmpfs. По умолчанию твой раздел равен размеру оперативки, что может привести к печальным последствиям.
Утверждение не верно.
По умолчанию раздел tmpfs равен половине объема ОЗУ и в нагрузку умеет пользоваться свапом

Код: (bash) [Выделить]
sudo mount -t tmpfs -o defaults tmpfs /tmp/tmpfs
df -h
tmpfs           7.8G     0  7.8G   0% /tmp/tmpfs
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
cat /dev/zero > /tmp/tmpfs

Особенно весело провести такой трюк на виртуалке с 1Gb памяти. Или меньше.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
AnrDaemon, Especially for you

Код: (bash) [Выделить]
> free
             total       used       free     shared    buffers     cached
Mem:        995908     413572     582336       6808       2504     172352
-/+ buffers/cache:     238716     757192
Swap:      1998844      63524    1935320

> sudo mount -t tmpfs -o defaults tmpfs /tmp/tmpfs

> df -h
tmpfs           487M     0  487M   0% /tmp/tmpfs

> cat /dev/zero > /tmp/tmpfs/tmp           
cat: write error: No space left on device

> free
             total       used       free     shared    buffers     cached
Mem:        995908     920956      74952     504760       3396     678280
-/+ buffers/cache:     239280     756628
Swap:      1998844      63520    1935324

> df -h
tmpfs           487M  487M     0 100% /tmp/tmpfs

> sudo umount /tmp/tmpfs
> free
             total       used       free     shared    buffers     cached
Mem:        995908     427196     568712       6808       4708     182384
-/+ buffers/cache:     240104     755804
Swap:      1998844      63520    1935324


А автору могу посоветовать глянуть на написание служб для systemd, если система с оным, или сервисов для init.d (если случай с tmpfs вас чем-то не устраивает)

Вариант для 16.04
Создаем файлик в папке /lib/systemd/system/ с именем, на пример, deleteonpoweroff.service и таким содержимым
Код: (ini) [Выделить]
[Unit]                                                                                                                                                                                                                         
Description=Remove all files on dir
Before=shutdown.target
DefaultDependencies=no

[Service]
ExecStart=/bin/rm -r -f /path/which/contains_files/*
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=shutdown.target


После чего делаем
Код: (bash) [Выделить]
sudo systemctl enable deleteonpoweroff.service
sudo systemctl start deleteonpoweroff.service
« Последнее редактирование: 03 Ноября 2016, 14:35:03 от EvangelionDeath »
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
И у тебя не повис ни один сервис, и ничего не отвалилось? Завидую.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
AnrDaemon, увы, но ничего не зависло и не отвалилось. Как я выше писал - tmpfs по умолчанию использует половину ОЗУ, умеет использовать своп, ну и ОЗУ он использует по мере необходимости. Для фатального стечения обстоятельств наверное стоит отключить свап, забито ОЗУ под завязку, а потом уже проделывать сей эксперемент.

И даже с ним не удалось уложить полностью систему =(

Код: (bash) [Выделить]
> sudo swapoff -a

> free                           
             total       used       free     shared    buffers     cached
Mem:        995908     355584     640324       7156      11716     124532
-/+ buffers/cache:     219336     776572
Swap:            0          0          0

> sudo mount -t tmpfs -o defaults tmpfs /tmp/tmpfs
> sudo mount -t tmpfs -o defaults tmpfs /tmp/tmpfs1

> cat /dev/zero > /tmp/tmpfs/tmp
cat: write error: No space left on device

cat /dev/zero > /tmp/tmpfs1/tmp
cat: write error: No space left on device

> free
             total       used       free     shared    buffers     cached
Mem:        995908     934936      60972     709100        128     716544
-/+ buffers/cache:     218264     777644

df -h
zsh: fork failed: cannot allocate memory

И только после таких манипуляций начали падать службы
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

 

Страница сгенерирована за 0.081 секунд. Запросов: 25.