기본 / tmp를 / home / user / tmp로 변경하는 방법


답변:


17

Java 애플릿이 실제로 환경 변수를 시작하기 전에 실제로 볼 것인지는 확실하지 않지만 / etc / profile을 편집하고 다음 줄을 추가 할 수 있습니다.

if [[ -O /home/$USER/tmp && -d /home/$USER/tmp ]]; then
        TMPDIR=/home/$USER/tmp
else
        # You may wish to remove this line, it is there in case
        # a user has put a file 'tmp' in there directory or a
        rm -rf /home/$USER/tmp 2> /dev/null
        mkdir -p /home/$USER/tmp
        TMPDIR=$(mktemp -d /home/$USER/tmp/XXXX)
fi

TMP=$TMPDIR
TEMP=$TMPDIR

export TMPDIR TMP TEMP

실제 tmp 디렉토리로 만들려면 (세션이 종료 될 때 파일이 사라지듯이) 사용자의 .bash_logout 및 스켈레톤 .bash_logout (/etc/skel/.bash_logout)을 편집하여 다음을 포함 시키십시오. :

if [ -O $TMPDIR && -d $TMPDIR ]; then
        rm -rf $TMPDIR/*
fi

로그 아웃 부분은 변수가 설정되지 않고 루트로 로그인되어 위험합니다! 루트 계정이나 휠 그룹의 구성원 인 사람에게는 이것을 추가하지 않습니다! 주의해서 진행하십시오.


3
정리를 .bash_logout에 전혀 넣지 않을 것입니다. 두 세션을 열고 하나를 로그 아웃하면 어떻게됩니까? tmpwatch를 사용하십시오. :)
MikeyB 2009

추가 덕분에 훨씬 나은 정리 솔루션입니다. :)
TrueDuality

NB : tmpwatchBSD (예 : OSX) 버전의 유닉스에는이 명령이 존재하지 않습니다. 내 CentOS 상자에 있습니다. :)
Cometsong

8

찾고있는 파일은 다음과 같습니다.

/etc/environment

TEMP 변수를 다음과 같이 설정해야합니다.

TEMP=/home/user/tmp

2
그리고 심지어export TEMP=/home/user/tmp
Fedir RYKHTIK

쉘에있는 @Fedir입니다.
cstamas

2

당신이 원하는 경우 /home/user/tmp에 다시 부팅 청소, 당신은 추가 제안 @reboot사용자가 개인의에 일을 crontab.


1

C에서는 충돌을 피하는 posix 시스템에 대해 tmpfile () 호출을 사용합니다 . 따라서 아직 구현하지 않은 경우 직접 구현하기 전에 비슷한 Java 호출을 찾습니다.


이것은 그가 응용 프로그램을 개발하는 사람이라고 가정합니다
TrueDuality

TrueDuality : 아, 내 실수
Kyle Brandt

1
자바가있다 java.io.File.createTempFile. 이제 보안 RNG가 추가되었습니다.
Tom Hawtin-tackline

1

Java는 시스템 특성 java.io.tmpdir을 사용하여 임시 디렉토리를 구성합니다. 합리적인 JRE는 명시 적으로 지정되지 않은 경우 시스템에 따라 적절한 값으로 설정합니다.


1

저에게 이것은 java를 사용하여 jar 파일을 설치하려고 할 때 효과적이었습니다.

export _JAVA_OPTIONS="-Djava.io.tmpdir=/apps/prod/tmp"

Red Hat Linux를 사용합니다. /apps/prod/tmp새 폴더입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.