/tmp의 디렉터리 삭제 방지

/tmp의 디렉터리 삭제 방지

나는 종종 /tmp내 Linux 컴퓨터의 디렉터리를 사용하여 임시 파일(예: 먼저 다운로드하라는 웹 사이트의 PDF 등)을 저장하고 내 사용자 이름으로 디렉터리를 만드는 경우가 많습니다. 하지만 시작할 때마다 모든 파일을 포함하여 삭제됩니다. 이제 그것을 에 넣을 수 있다는 것을 알았지 /var/tmp만, 그 내용을 모두 삭제하고 디렉토리 자체는 유지하고 싶습니다. 그래서:

tmp
 |- me # this should stay
 |  |- foo1 # this should be deleted...
 |  |- bar1 # ...and this as well
 |- other stuff...

이를 수행할 수 있는 방법이 있습니까? 권한이나 특별한 구성이 있을까요?

답변1

나는 사용한다pam-tmpdir이를 수행하려면 로그인 시 사용자 개인 임시 디렉토리를 생성합니다. 이를 설정하려면 다음을 추가하세요.

session optional pam_tmpdir.so

적절한 PAM 서비스에 연결하세요. Debian 기반 시스템에서는 설치 libpam-tmpdir패키지가 이 작업을 수행합니다. 또는 다음에 로그인할 때 /etc/pam.d/common-session아래에/tmp/user 사용자 ID가 포함된 디렉터리를 찾아서 적절하게 TMP만들 수 있습니다 . TMPDIR설정.

답변2

@reboot한 가지 해결책은 cron 작업을 사용하는 것입니다 .

@reboot mkdir -p "/tmp/$USER"

이것을 crontab에 추가하면 crontab -e컴퓨터가 시작될 때 실행됩니다.

또는 다음을 사용하십시오.

mkdir -p "/tmp/$USER"

쉘의 시작 파일에 있습니다.

두 경우 모두 다음을 사용할 수도 있습니다.

TMPDIR=/tmp/$USER
export TMPDIR

이 디렉토리를 기본 임시 디렉토리로 사용하려면 쉘의 시작 파일에 디렉토리를 추가하십시오.

답변3

systemd를 사용하여 시스템을 실행하지 않고 systemd-tmpfiles를 사용하여 정리를 관리하는 경우 시스템 구성 디렉터리를 사용해야 합니다.

이것은완전한 문서. /etc/tmpfiles.d/something.conf다음을 사용하여 원하는 것을 얻을 수 있습니다 .

d     /tmp/your_username   0750 your_user your_group  - -

답변4

의견에서 지적했듯이 /tmp임시 파일에 작동하며 삭제해도 손실되지 않습니다. 어떤 작업을 하고 있는데 컴퓨터가 재부팅되면 거기에 쓴 모든 내용이 사라지고 다시 시작해야 합니다. 즉, 해당 파일은 결국 임시 파일이 아닐 수도 있습니다.

수년에 걸쳐 나는 기가바이트가 많은 공간이었을 때 홈 디렉토리에 임시 디렉토리를 유지 관리했으며 오래되고 거친 파일을 제거하려면 정기적인 정리가 필요하다는 것을 알았습니다. 대부분의 경우 해당 프로세스가 완료되는 데 몇 주가 채 걸리지 않으므로 이제 하루에 한 번 실행되는 cron 작업을 사용하여 정리합니다.

find $HOME/tmp -depth -mtime +30 -print0 | xargs -0 -r rm -rf

내가 다운로드하거나 생성한 모든 반임시 콘텐츠가 여기에 도착하며, 시스템은 내가 남긴 모든 것을 정리합니다. 영구 주택이 필요한 모든 것은 크론 작업이 이를 제거하기 오래 전에 영구 주택을 얻습니다.

관련 정보