crond 동작이 되고 있는 상황이고, /var/log/syslog에 다음과 같은 로그가 남겨지고 있습니다.
Dec 30 22:22:01 ubuntu CRON[8404]: (root) CMD (/bin/touch /testt)
Dec 30 22:23:01 ubuntu CRON[8407]: (root) CMD (/bin/touch /testt)
Dec 30 22:24:01 ubuntu CRON[8409]: (root) CMD (/bin/touch /testt)
Dec 30 22:25:01 ubuntu CRON[8411]: (root) CMD (/bin/touch /testt)
Dec 30 22:26:01 ubuntu CRON[8413]: (root) CMD (/bin/touch /testt)
혹시나 해서 /usr/bin/touch /testt나 touch /testt로도 명령어를 변경해보았는데 허사였습니다.
제가 알고 있는 지식으로는 실행은 되었다는 것인데, 실제 결과물이 없는 상황입니다.
그래서 실행이 되면 왜 실행이 되지 않는 것인지 해서 일반 계정(sudoers)을 이용하여 touch /home/해당유저/tttt를 시켜봤더니 정상 실행되더라구요.
다시 root로 돌아가서 touch /root/tt를 해봤더니 역시 결과물이 나타나지 않고 있습니다.
백업스크립트를 동작시키기 위하여 root의 동작이 필요한 상황인데, 혹시 이런 상황은 무엇 때문인지요? (단 직접 root로 로그인하여 실행시 동작됩니다.)
oseb1
(oseb)
12월 30, 2013, 2:44오후
2
환경변수가 root에는 반영되어 있지 않아서 그런건 없나요?
사용자계정과 루트계정에서는 돌아가는데 크론에서 root 권한으로 안 돌아가면 로그인 할 때 사용하는 환경변수의 영향이 의심됩니다.
아마도 권한 문제인 듯 싶습니다.
crontab -e 명령으로 생성하신 경우, 사용자 권한으로 동작하며, /var/spool/crontabs/* 로 저장되는 듯 합니다.
관리자 권한으로 동작하도록 하시려면,
/etc/cron.hourly,daily,weekly,monthly
/etc/cron.d/*
/etc/crontab
중에서 원하시는 곳에 저장하시면 됩니다.
추천하는 위치는 /etc/cron.d/* 혹은 /etc/cron.간격 입니다.
그리고, 파일 내용에는 어떤 사용자로 동작하게 할 것인가를 지정하게 되어 있습니다.
안에 있는 파일의 내용을 참고하시면 됩니다.
답변 감사드립니다.
/etc/crontab 파일과 /etc/cron.d하단에 파일을 아래 유형으로 넣어 보았습니다.
root /usr/bin/touch /tdfjfkjaskd
하지만 둘 모두 작동이 되지 않았습니다.
또한 환경변수 같은 것은 조작한 적이 없습니다. 참고로 해당 우분투 버전은 12.04 LTS입니다.
10.04때는 이런 이상을 본 적이 없었는데, 12.04와 13.04 같은 버전에서 유독 이런 메시지를 보고 있습니다.
bahzu
12월 30, 2013, 4:54오후
5
[quote:3fhhe26r]root touch /tdfjfkjaskd[/quote:3fhhe26r]
touch 명령어는 파일에 관한 명령어 인데 디렉토리가 왜 나오는가요?
제가 모르는 뭔가 있나요?
oseb1
(oseb)
12월 30, 2013, 4:56오후
6
터치로 디렉토리 날짜 수정하는 듯 싶습니다
폰에서 루팅하고 파일 고치면 디렉토리 시간이 바뀔 때 touch로 맞춰줬던 기억이 나네요.
근데 질문이 이상한게
cron에 있는 명령을 터미널에서 따로 실행했을 때 어떻다는 부분을 잘 이해 못했습니다.
사용자로 되고 root에서는 안 되었다는 말에서요.
그건 보통 환경설정을 못가져 올때 생기는 현상이거든요.
bahzu
12월 30, 2013, 4:58오후
7
음…! 그런 건가요…^^ 디렉토리도 되는 구나! (아! 무식이 탄로 납니다.)
오늘 하나 배웠네요. 맨날 스크립트 짜서 하다 보니…^^
보안문제로 root 사용자로는
크론실행이 원천봉쇄된건
아닌가요?
우분투도 크론플그램은
프비랑 비스무리한거 같은데…
/etc 디렉토리 하부에
cron.allow 나 cron.deny 같은
파일이 잇는지도 한번 찾아보심이
;;
bahzu
12월 31, 2013, 2:05오전
10
어…! 설마 …??
생겨도 디렉토리가 아니라 파일이 생기겠죠!
파일 처리라면 /는 왜 붙여는지…?
그러고 보니 시간 맞춰 주는 게 아닐지도…^^
아! 루트에 abc, 그런 의미이군요.(무식이 두번 탄로 나는 것 같습니다.)
oseb1
(oseb)
12월 31, 2013, 2:25오전
11
원래 의도가 / 밑에 abc를 디렉토리로 의도하고 했다고 봐야 할까요?
터치는 파일을 핸들링 하는데 말입니다.
[code:3ps1uu1f] $ sudo touch /abc
$ ll /
total 101
drwxr-xr-x 23 root root 4096 Dec 31 11:17 ./
drwxr-xr-x 23 root root 4096 Dec 31 11:17 ../
-rw-r–r-- 1 root root 0 Dec 31 11:17 abc
...[/code:3ps1uu1f]
bahzu
12월 31, 2013, 2:57오전
12
그러니까요…^^
제가 한 무식 하잖아요! (거의 써볼 일이 없어서…한 번 봐주세요)
제 생각은 root 권한이니까 문제없겠다 싶어서 루트 디렉토리에 파일을 생성하겠다는 것이었습니다. (touch /djfaskdfj)
etc 아래로 cron.d, cron.daily, cron.hourly, cron.monthly, cron.weekly, crontab이 존재했고 cron.allow나 cron.deny는 존재하지 않았습니다.
root로 "touch /abc" 를 실행하면 abc라는 파일이 생성됩니다.
-rw-r–r-- 1 root root 0 12월 31 14:37 abc
디렉토리 시간도 최신으로 변경이 가능한지 처음 알았습니다.
환경변수는 제가 알기로 ~ 아래 숨김 파일들인 것 같은데
.bash_history, .bashrc, .profile, .selected_editor, .viminfo와 디렉토리 .ssh, .vim, .cache가 존재하고 있고 OS 설치가 며칠 되지도 않았지만 설치이래로 건들지 않았습니다.