나는 crontab의 마법 세계에 많은 어려움이 있다는 것을 알고 있지만 때로는 쉘에서 실행할 때와 똑같은 환경에서 대화형(bash) 쉘에 들어갈 수 있는 현명한 방법이 있을 때 많은 문제를 해결하는 데 도움이 됩니다. 스크립트. 크론탭.
이제 스스로 알아냈지만 /bin/openvt -c8 -- /bin/bash --noprofile -l
루트 액세스가 필요하고 변수를 너무 많이 설정하고 단순히 su myusername
추가 환경을 많이 설정합니다.
동일한 cron 환경에서 Kubuntu에 대한 루트 권한을 요구하지 않고 대화형 bash 쉘을 시작하는 방법을 아는 사람이 있습니까?
SSH 세션, GUI 및 다음 운영 체제 중 하나 이상에서 작동할 때의 이점: HP-UX, Solaris 및 AIX
답변1
실행 crontab -e
및 항목 추가
* * * * * export -p > ~/cron-env
(Solaris 또는 POSIX 쉘을 사용하여 명령줄을 해석하지 않는 시스템을 사용하는 경우 /usr/xpg4/bin/sh -c 'export -p > ~/cron-env'
표준 경로나 해당 시스템의 모든 경로를 사용하십시오.)sh
잠시 기다린 후 행을 삭제하세요.
cron-env
이제 홈 디렉토리에 파일이 있을 것입니다.
그런 다음 다음을 실행할 수 있습니다.
cd && env -i sh -c '. ./cron-env; exec sh'
cron 작업과 동일한 환경을 사용하여 셸을 시작합니다.
답변2
Cron은 대화형 쉘이 아니므로 이것이 첫 번째 질문입니다. 그러나 그것은 대부분 무시할 수 있는 수준입니다.
진짜는 환경 변수입니다. cron 메시지의 헤더를 보고 이를 찾은 다음 셸에서 변수를 설정하고 나머지 변수를 설정 해제합니다.
이제 cron에서 볼 수 있듯이 환경에 매우 가깝습니다.