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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

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

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

Оффлайн qualit

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

Оффлайн qualit

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

Оффлайн Azure

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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26061
    • Просмотр профиля
Необходимо чтобы файлы удалялись навсегда.
Они и удаляются. То что появляются - старье, которое было до подключения в 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

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

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

Оффлайн Karl500

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

Оффлайн Sly_tom_cat

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

Оффлайн AnrDaemon

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

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

Оффлайн EvangelionDeath

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

Код: Bash
  1. sudo mount -t tmpfs -o defaults tmpfs /tmp/tmpfs
  2. df -h
  3. tmpfs           7.8G     0  7.8G   0% /tmp/tmpfs
  4.  
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн AnrDaemon

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

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

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

Оффлайн EvangelionDeath

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

Код: Bash
  1. > free
  2.              total       used       free     shared    buffers     cached
  3. Mem:        995908     413572     582336       6808       2504     172352
  4. -/+ buffers/cache:     238716     757192
  5. Swap:      1998844      63524    1935320
  6.  
  7. > sudo mount -t tmpfs -o defaults tmpfs /tmp/tmpfs
  8.  
  9. > df -h
  10. tmpfs           487M     0  487M   0% /tmp/tmpfs
  11.  
  12. > cat /dev/zero > /tmp/tmpfs/tmp            
  13. cat: write error: No space left on device
  14.  
  15. > free
  16.              total       used       free     shared    buffers     cached
  17. Mem:        995908     920956      74952     504760       3396     678280
  18. -/+ buffers/cache:     239280     756628
  19. Swap:      1998844      63520    1935324
  20.  
  21. > df -h
  22. tmpfs           487M  487M     0 100% /tmp/tmpfs
  23.  
  24. > sudo umount /tmp/tmpfs
  25. > free
  26.              total       used       free     shared    buffers     cached
  27. Mem:        995908     427196     568712       6808       4708     182384
  28. -/+ buffers/cache:     240104     755804
  29. Swap:      1998844      63520    1935324
  30.  
  31.  

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

Вариант для 16.04
Создаем файлик в папке /lib/systemd/system/ с именем, на пример, deleteonpoweroff.service и таким содержимым
Код: INI
  1. [Unit]                                                                                                                                                                                                                          
  2. Description=Remove all files on dir
  3. Before=shutdown.target
  4. DefaultDependencies=no
  5.  
  6. [Service]
  7. ExecStart=/bin/rm -r -f /path/which/contains_files/*
  8. Type=oneshot
  9. RemainAfterExit=yes
  10.  
  11. [Install]
  12. WantedBy=shutdown.target
  13.  
  14.  

После чего делаем
Код: Bash
  1. sudo systemctl enable deleteonpoweroff.service
  2. sudo systemctl start deleteonpoweroff.service
  3.  
« Последнее редактирование: 03 Ноябрь 2016, 14:35:03 от EvangelionDeath »
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн AnrDaemon

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

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

Оффлайн EvangelionDeath

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

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

Код: Bash
  1. > sudo swapoff -a
  2.  
  3. > free                          
  4.              total       used       free     shared    buffers     cached
  5. Mem:        995908     355584     640324       7156      11716     124532
  6. -/+ buffers/cache:     219336     776572
  7. Swap:            0          0          0
  8.  
  9. > sudo mount -t tmpfs -o defaults tmpfs /tmp/tmpfs
  10. > sudo mount -t tmpfs -o defaults tmpfs /tmp/tmpfs1
  11.  
  12. > cat /dev/zero > /tmp/tmpfs/tmp
  13. cat: write error: No space left on device
  14.  
  15. cat /dev/zero > /tmp/tmpfs1/tmp
  16. cat: write error: No space left on device
  17.  
  18. > free
  19.              total       used       free     shared    buffers     cached
  20. Mem:        995908     934936      60972     709100        128     716544
  21. -/+ buffers/cache:     218264     777644
  22.  
  23. df -h
  24. zsh: fork failed: cannot allocate memory
  25.  

И только после таких манипуляций начали падать службы
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

 

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