cron과 동일한 환경의 대화식 쉘


10

나는 crontabs의 마술 세계에서 많은 함정을 알고 있지만 때로는 쉘 스크립트가 크론 탭.

이제는 나 자신을 생각 /bin/openvt -c8 -- /bin/bash --noprofile -l했지만 루트 권한이 필요하고 너무 많은 변수를 su myusername설정하고 단순하게 많은 추가 환경을 설정합니다.

누구든지 크론 환경과 동일하고 쿠분투에서 루트 권한이 필요하지 않은 대화식 bash 쉘을 시작하는 방법을 알고 있습니까?

ssh 세션, GUI 및 다음 OS 중 하나 이상에서 작동하는 경우 보너스 : HP-UX, Solaris 및 AIX

답변:


14

다음을 사용 crontab -e하여 항목을 실행 하고 추가 하십시오.

* * * * * export -p > ~/cron-env

(Solaris 또는 POSIX 셸을 사용하여 해당 명령 줄을 해석하지 않는 시스템 인 경우 /usr/xpg4/bin/sh -c 'export -p > ~/cron-env'또는 sh해당 시스템 의 표준 경로를 사용하십시오 ).

1 분 정도 기다렸다가 해당 라인을 제거하십시오.

이제 cron-env홈 디렉토리에 파일 이 있어야합니다 .

그런 다음 다음을 실행할 수 있습니다.

cd && env -i sh -c '. ./cron-env; exec sh'

cron 작업과 동일한 환경에서 쉘을 시작합니다.


흥미 롭습니다. 약 1 시간 후에 돌아올 때 확인하겠습니다.
jippie

훌륭하고 꿈처럼 작동합니다!
jippie

가장 훌륭한 답변. 가능한 경우 투표를 두 번 이상했습니다.
Sukima

2

Cron은 대화식 쉘이 아니므로 첫 번째 문제입니다. 그래도 대부분 무시할 수 있습니다.

실제로는 환경 변수입니다. cron 메일의 헤더를 찾아서 찾은 다음 쉘에서 변수를 일치시키고 나머지 변수를 모두 설정 해제하십시오.

이제 cron이 보는 것처럼 환경에 매우 가깝습니다.


환경의 일부를 포함하는 메일 헤더는 눈치 채지 못했습니다. 기본적으로 Thunderbird는이를 사용자에게 숨 깁니다. 불행히도 헤더는 완전한 환경을 완벽하게 나타내는 것은 아닙니다.
jippie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.