Slackware - Limpeza automática da pasta /tmp

O texto descreve o passo a passo de um procedimento bastante simples para limpeza automática da pasta /tmp no Slackware.

[ Hits: 2.825 ]

Por: Lucky em 22/01/2021


Introdução



Certa vez eu notei que no Slackware a pasta /tmp mantinha todo os seus arquivos intactos, após a reinicialização do sistema. Pelo menos no meu caso é importante que esta pasta não ocupe muito espaço em disco, e o Slackware não opera a limpeza da pasta /tmp automaticamente.

Nessa distribuição é necessário que esse arranjo seja feito pelo próprio usuário, com a adição de dois scripts que devem ser alocados dentro de /etc/rc.d/. Uma vez alocados em /etc/rc.d, os scripts precisam de ter permissão para que a pasta /tmp possa ser limpa a cada vez que o sistema for reinicializado.

Configuração

Não é nada complicado. Primeiramente, é preciso criar o script "rc.cleanup". E ele deverá conter as linhas descritas abaixo (lembrando que esse script "rc.cleanup" deverá ser alocado dentro de /etc/rc.d/):

#!/bin/sh

echo 'Cleaning /tmp...'
rm -fr /tmp/*
echo 'Done!'

Para o caso do usuário necessitar visualizar uma das maneiras de realizar esse procedimento, as imagens abaixo mostram a seguinte sequência.

Entrando em /etc/rc.d, usando o Terminal, para criar o script "rc.cleanup" (utilizei o editor nano para isso):
Linux: Configurando o Slackware para limpeza automática da pasta  /tmp
Digitando as linhas do script (no nano: salve com ctrl+o e saia com ctrl+x):
Linux: Configurando o Slackware para limpeza automática da pasta  /tmp
O script "rc.cleanup" criado:
Linux: Configurando o Slackware para limpeza automática da pasta  /tmp
Agora o segundo passo, que será colocar o script "rc.local_shutdown" também dentro de /etc/rc.d/. Esse script deverá conter as linhas descritas abaixo:

#!/bin/sh

if test -x /etc/rc.d/rc.cleanup
then source /etc/rc.d/rc.cleanup
fi

Para o caso do usuário necessitar visualizar uma das maneiras de realizar esse procedimento, as imagens abaixo mostram a seguinte sequência.

Entrando em /etc/rc.d, usando o Terminal, para criar o script "rc.local_shutdown" (utilizei o editor nano para isso):
Linux: Configurando o Slackware para limpeza automática da pasta  /tmp
Escrevendo as linhas do script "rc.local_shutdown":
Linux: Configurando o Slackware para limpeza automática da pasta  /tmp
O script "rc.local_shutdown" criado:
Linux: Configurando o Slackware para limpeza automática da pasta  /tmp
Para finalizar, é preciso fazer com que ambos possam ser executados, dando-lhes permissão para isso. Os comandos a serem dados, são:

# chmod +x /etc/rc.d/rc.cleanup
# chmod +x /etc/rc.d/rc.local_shutdown

Ou somente:

# chmod +x /etc/rc.d/rc.cleanup /etc/rc.d/rc.local_shutdown

Pronto. Na próxima reinicialização a pasta /tmp passará a ser automaticamente limpa.

Observação: os créditos do compartilhamento do procedimento descrito nesse texto são do usuário Jarno Trulli (VOL), que o postou em 2008. Como o mesmo não registrou em artigo ou em dica, o passo a passo desse útil processo, decidi colocá-lo em texto com a devida citação e os créditos são dados a ele:

Link: pasta /tmp não apaga [Slackware]

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Um método para a construção da interface gráfica MATE no Slackware

Construindo e Instalando a Interface Gráfica Cinnamon no Slackware

Leitura recomendada

Embelezando o Xubuntu 12.04

Configurando uma placa de rede no Linux

Configuração: Servidor de nomes slave com Bind9 no Debian 4.0

Instalação e configuração do Bandwidthd no Conectiva Linux 9

Configurando o kernel 2.6.8.1-smp para Pentium IV Hyper-Threading (P4-HT)

  
Comentários
[1] Comentário enviado por maurixnovatrento em 23/01/2021 - 13:31h


Boa ideia. Entretanto, colocar rm -rf /tmp/* no rc.local é mais simples e prático.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[2] Comentário enviado por LckLinux em 23/01/2021 - 14:51h


[1] Comentário enviado por mauricio123 em 23/01/2021 - 13:31h


Boa ideia. Entretanto, colocar rm -rf /tmp/* no rc.local é mais simples e prático.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

Obrigado pela sugestão, mauricio123!

[3] Comentário enviado por edps em 25/01/2021 - 16:19h


Eu já deixo essa pasta montada em tmpfs, assim reiniciou? tudo zerado.

Entradas que uso no /etc/fstab:

tmpfs /dev/shm tmpfs nosuid,nodev,noexec 0 0
tmpfs /tmp tmpfs rw,nodev,nosuid,size=10G 0 0


[4] Comentário enviado por LckLinux em 25/01/2021 - 16:54h


[3] Comentário enviado por edps em 25/01/2021 - 16:19h


Eu já deixo essa pasta montada em tmpfs, assim reiniciou? tudo zerado.

Entradas que uso no /etc/fstab:

tmpfs /dev/shm tmpfs nosuid,nodev,noexec 0 0
tmpfs /tmp tmpfs rw,nodev,nosuid,size=10G 0 0




Já está anotado aqui, obrigado edps \o/

[5] Comentário enviado por maurixnovatrento em 25/01/2021 - 20:25h


[4] Comentário enviado por LckLinux em 25/01/2021 - 16:54h


[3] Comentário enviado por edps em 25/01/2021 - 16:19h


Eu já deixo essa pasta montada em tmpfs, assim reiniciou? tudo zerado.

Entradas que uso no /etc/fstab:

tmpfs /dev/shm tmpfs nosuid,nodev,noexec 0 0
tmpfs /tmp tmpfs rw,nodev,nosuid,size=10G 0 0

Já está anotado aqui, obrigado edps \o/



Isso no fstab? Legal, é mais estiloso.


[6] Comentário enviado por edps em 26/01/2021 - 19:06h

Olá pessoas,

foge um pouco do teor da dica, mais podemos usar TMPFS também para o cache de programas, desde que se tenha: boa conexão e memória RAM, assim evita-se a escrita em disco:

maiores detalhes em:

https://edpsblog.wordpress.com/2019/09/09/dica-cache-de-programas-em-tmpfs/

[7] Comentário enviado por LckLinux em 26/01/2021 - 19:45h


[6] Comentário enviado por edps em 26/01/2021 - 19:06h

Olá pessoas,

foge um pouco do teor da dica, mais podemos usar TMPFS também para o cache de programas, desde que se tenha: boa conexão e memória RAM, assim evita-se a escrita em disco:

maiores detalhes em:

https://edpsblog.wordpress.com/2019/09/09/dica-cache-de-programas-em-tmpfs/


Foge não, vou conferir no teu Blog (o qual eu já acompanho). Valeu, edps !

[8] Comentário enviado por Minions em 28/01/2021 - 00:16h

CUIDADO

Na pasta /tmp, tem os pacotes dos programas do Slackware

[9] Comentário enviado por maurixnovatrento em 28/01/2021 - 21:59h


[8] Comentário enviado por Minions em 28/01/2021 - 00:16h

CUIDADO

Na pasta /tmp, tem os pacotes dos programas do Slackware


Meus SlackBuids são modificados para salvar os pacotes no Diretório Corrente. Os demais SlackBuilds poderiam fazer o mesmo.

[10] Comentário enviado por Minions em 28/01/2021 - 22:56h


[9] Comentário enviado por mauricio123 em 28/01/2021 - 21:59h


[8] Comentário enviado por Minions em 28/01/2021 - 00:16h

CUIDADO

Na pasta /tmp, tem os pacotes dos programas do Slackware


Meus SlackBuids são modificados para salvar os pacotes no Diretório Corrente. Os demais SlackBuilds poderiam fazer o mesmo.


Passa essa dica ai.... :)

No padrão vai tudo para /tmp

[11] Comentário enviado por LckLinux em 29/01/2021 - 10:55h


[8] Comentário enviado por Minions em 28/01/2021 - 00:16h

CUIDADO

Na pasta /tmp, tem os pacotes dos programas do Slackware


Dá uma lida no ítem 2.1 (Preparando o Ambiente) deste texto aqui: https://slackjeff.com.br/artigos/slackware/compilacao-com-slackbuilds.html

[12] Comentário enviado por edps em 29/01/2021 - 11:17h


[8] Comentário enviado por Minions em 28/01/2021 - 00:16h

CUIDADO

Na pasta /tmp, tem os pacotes dos programas do Slackware


Se usa Sbopkg, segue um exemplo para o arquivo /etc/sbopkg/sbopkg.conf:

export TMP=${TMP:-/tmp/SBo-git}
export OUTPUT=${OUTPUT:-/home/edps/SlackBuilds/Packages/x86_64}

Já executando um SlackBuild qualquer...


$ sudo TAG=ponce OUTPUT=/home/edps/test/ sh *.SlackBuild
unagi-0.3.4/
...
unagi-0.3.4/src/window.c
checking for a BSD-compatible install... /usr/bin/ginstall -c
...
config.status: executing libtool commands
Making all in include
make[1]: Entrando no diretório '/tmp/SBo/unagi-0.3.4/include'

make[1]: Nada a ser feito para 'all'.
make[1]: Saindo do diretório '/tmp/SBo/unagi-0.3.4/include'

Making all in src
make[1]: Entrando no diretório '/tmp/SBo/unagi-0.3.4/src'

gcc -DPACKAGE_NAME=\"unagi\" -DPACKAGE_TARNAME=\"unagi\" -DPACKAGE_VERSION=\"0.3.4\" -DPACKAGE_STRING=\"unagi\ 0.3.4\" -DPACKAGE_BUGREPORT=\"Arnaud\ Fontaine\ \<arnau@mini-dweeb.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"unagi\" -DVERSION=\"0.3.4\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_X11_KEYSYM_H=1 -DHAVE_X11_XF86KEYSYM_H=1 -DHAVE__BOOL=1 -DHAVE_STDBOOL_H=1 -I. -I../include -O2 -fPIC -DRENDERING_DIR='"/usr/lib64/unagi/rendering/"' -DPLUGINS_DIR='"/usr/lib64/unagi/plugins/"' -DXDG_CONFIG_DIR='"/etc/xdg"' -Wformat-nonliteral -Wall -Wextra -Wunused-
...
Building macro definition list...
...

make[1]: Saindo do diretório '/tmp/SBo/unagi-0.3.4'


Slackware package maker, version 3.14159265.

Searching for symbolic links:

No symbolic links were found, so we won't make an installation script.
You can make your own later in ./install/doinst.sh and rebuild the
package if you like.

This next step is optional - you can set the directories in your package
to some sane permissions. If any of the directories in your package have
special permissions, then DO NOT reset them here!

Would you like to reset all directory permissions to 755 (drwxr-xr-x) and
directory ownerships to root.root ([y]es, [n]o)? n

Creating Slackware package: /home/edps/test/unagi-0.3.4-x86_64-1ponce.txz

./
etc/
etc/xdg/
etc/xdg/unagi.conf
install/
install/slack-desc
usr/
usr/bin/
usr/bin/unagi
usr/doc/
usr/doc/unagi-0.3.4/
usr/doc/unagi-0.3.4/AUTHORS
usr/doc/unagi-0.3.4/BUGS
usr/doc/unagi-0.3.4/COPYING
usr/doc/unagi-0.3.4/ChangeLog
usr/doc/unagi-0.3.4/INSTALL
usr/doc/unagi-0.3.4/README
usr/doc/unagi-0.3.4/THANKS
usr/doc/unagi-0.3.4/unagi.SlackBuild
usr/include/
usr/include/unagi/
usr/include/unagi/atoms.h
usr/include/unagi/display.h
usr/include/unagi/event.h
usr/include/unagi/key.h
usr/include/unagi/plugin.h
usr/include/unagi/plugin_common.h
usr/include/unagi/rendering.h
usr/include/unagi/structs.h
usr/include/unagi/system.h
usr/include/unagi/util.h
usr/include/unagi/window.h
usr/lib64/
usr/lib64/pkgconfig/
usr/lib64/pkgconfig/unagi.pc
usr/lib64/unagi/
usr/lib64/unagi/plugins/
usr/lib64/unagi/plugins/expose.la
usr/lib64/unagi/plugins/expose.so
usr/lib64/unagi/plugins/opacity.la
usr/lib64/unagi/plugins/opacity.so
usr/lib64/unagi/rendering/
usr/lib64/unagi/rendering/render.la
usr/lib64/unagi/rendering/render.so

Slackware package /home/edps/test/unagi-0.3.4-x86_64-1ponce.txz created.

$ sudo installpkg /home/edps/test/unagi-0.3.4-x86_64-1ponce.txz
Verifying package unagi-0.3.4-x86_64-1ponce.txz.
Installing package unagi-0.3.4-x86_64-1ponce.txz:
PACKAGE DESCRIPTION:
# unagi (Modular X compositing manager)
#
# Unagi is a modular compositing manager which aims to be efficient,
# lightweight and responsive. It is currently written in C programming
# language and based on XCB library client library.
#
# Home page: https://projects.mini-dweeb.org/projects/unagi
#
Package unagi-0.3.4-x86_64-1ponce.txz installed.
$


[13] Comentário enviado por LckLinux em 29/01/2021 - 11:24h


[12] Comentário enviado por edps em 29/01/2021 - 11:17h


[8] Comentário enviado por Minions em 28/01/2021 - 00:16h

CUIDADO

Na pasta /tmp, tem os pacotes dos programas do Slackware


Se usa Sbopkg, segue um exemplo para o arquivo /etc/sbopkg/sbopkg.conf:

export TMP=${TMP:-/tmp/SBo-git}
export OUTPUT=${OUTPUT:-/home/edps/SlackBuilds/Packages/x86_64}

Já executando um SlackBuild qualquer...


$ sudo TAG=ponce OUTPUT=/home/edps/test/ sh *.SlackBuild
unagi-0.3.4/
...
unagi-0.3.4/src/window.c
checking for a BSD-compatible install... /usr/bin/ginstall -c
...
config.status: executing libtool commands
Making all in include
make[1]: Entrando no diretório '/tmp/SBo/unagi-0.3.4/include'

make[1]: Nada a ser feito para 'all'.
make[1]: Saindo do diretório '/tmp/SBo/unagi-0.3.4/include'

Making all in src
make[1]: Entrando no diretório '/tmp/SBo/unagi-0.3.4/src'

gcc -DPACKAGE_NAME=\"unagi\" -DPACKAGE_TARNAME=\"unagi\" -DPACKAGE_VERSION=\"0.3.4\" -DPACKAGE_STRING=\"unagi\ 0.3.4\" -DPACKAGE_BUGREPORT=\"Arnaud\ Fontaine\ \&lt;arnau@mini-dweeb.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"unagi\" -DVERSION=\"0.3.4\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_X11_KEYSYM_H=1 -DHAVE_X11_XF86KEYSYM_H=1 -DHAVE__BOOL=1 -DHAVE_STDBOOL_H=1 -I. -I../include -O2 -fPIC -DRENDERING_DIR='"/usr/lib64/unagi/rendering/"' -DPLUGINS_DIR='"/usr/lib64/unagi/plugins/"' -DXDG_CONFIG_DIR='"/etc/xdg"' -Wformat-nonliteral -Wall -Wextra -Wunused-
...
Building macro definition list...
...

make[1]: Saindo do diretório '/tmp/SBo/unagi-0.3.4'


Slackware package maker, version 3.14159265.

Searching for symbolic links:

No symbolic links were found, so we won't make an installation script.
You can make your own later in ./install/doinst.sh and rebuild the
package if you like.

This next step is optional - you can set the directories in your package
to some sane permissions. If any of the directories in your package have
special permissions, then DO NOT reset them here!

Would you like to reset all directory permissions to 755 (drwxr-xr-x) and
directory ownerships to root.root ([y]es, [n]o)? n

Creating Slackware package: /home/edps/test/unagi-0.3.4-x86_64-1ponce.txz

./
etc/
etc/xdg/
etc/xdg/unagi.conf
install/
install/slack-desc
usr/
usr/bin/
usr/bin/unagi
usr/doc/
usr/doc/unagi-0.3.4/
usr/doc/unagi-0.3.4/AUTHORS
usr/doc/unagi-0.3.4/BUGS
usr/doc/unagi-0.3.4/COPYING
usr/doc/unagi-0.3.4/ChangeLog
usr/doc/unagi-0.3.4/INSTALL
usr/doc/unagi-0.3.4/README
usr/doc/unagi-0.3.4/THANKS
usr/doc/unagi-0.3.4/unagi.SlackBuild
usr/include/
usr/include/unagi/
usr/include/unagi/atoms.h
usr/include/unagi/display.h
usr/include/unagi/event.h
usr/include/unagi/key.h
usr/include/unagi/plugin.h
usr/include/unagi/plugin_common.h
usr/include/unagi/rendering.h
usr/include/unagi/structs.h
usr/include/unagi/system.h
usr/include/unagi/util.h
usr/include/unagi/window.h
usr/lib64/
usr/lib64/pkgconfig/
usr/lib64/pkgconfig/unagi.pc
usr/lib64/unagi/
usr/lib64/unagi/plugins/
usr/lib64/unagi/plugins/expose.la
usr/lib64/unagi/plugins/expose.so
usr/lib64/unagi/plugins/opacity.la
usr/lib64/unagi/plugins/opacity.so
usr/lib64/unagi/rendering/
usr/lib64/unagi/rendering/render.la
usr/lib64/unagi/rendering/render.so

Slackware package /home/edps/test/unagi-0.3.4-x86_64-1ponce.txz created.

$ sudo installpkg /home/edps/test/unagi-0.3.4-x86_64-1ponce.txz
Verifying package unagi-0.3.4-x86_64-1ponce.txz.
Installing package unagi-0.3.4-x86_64-1ponce.txz:
PACKAGE DESCRIPTION:
# unagi (Modular X compositing manager)
#
# Unagi is a modular compositing manager which aims to be efficient,
# lightweight and responsive. It is currently written in C programming
# language and based on XCB library client library.
#
# Home page: https://projects.mini-dweeb.org/projects/unagi
#
Package unagi-0.3.4-x86_64-1ponce.txz installed.
$



Obrigado pela contribuição, com exemplo, edps \o/

[14] Comentário enviado por maurixnovatrento em 29/01/2021 - 23:23h


[10] Comentário enviado por Minions em 28/01/2021 - 22:56h


[9] Comentário enviado por mauricio123 em 28/01/2021 - 21:59h


[8] Comentário enviado por Minions em 28/01/2021 - 00:16h

CUIDADO

Na pasta /tmp, tem os pacotes dos programas do Slackware


Meus SlackBuids são modificados para salvar os pacotes no Diretório Corrente. Os demais SlackBuilds poderiam fazer o mesmo.


Passa essa dica ai.... :)

No padrão vai tudo para /tmp



A única coisa que eu faço é modificar direto no script:

/sbin/makepkg -l y -c n $CWD/$PRGNAM-$VERSION-$ARCH-$BUILD.txz

Nessa parte. Ao invés de $OUTPUT eu uso $CWD, que pega o valor de $PWD.

[15] Comentário enviado por maurixnovatrento em 30/01/2021 - 00:10h


Dá pra fazer o seguinte no bashrc:

alias out-local='sed -i "s,OUTPUT/,CWD/," *SlackBuild'

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts