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