Cron 이상한점,, [완료]

test.sh 파일을 만들어서 (속에 내용이 홈폴더를 압축하는 내용으로 만들었어요)

./test.sh 하면 홈폴더 압축이 잘 됩니다. (파일도 있고 용량도 230Mb)

그런데 이 명령어를 CRON에 등록해 놓으면
00 05 * * * test.sh

매일새벽에 압축을 하긴는 하는데
용량이 180Kb 뿐이에요
매일 똑같이 180Kb 짜리만 생기는데요

왜 정상적으로 압축이 되지 않는 걸까요?

혹시 권한문제 아닐까요?
180KB 파일에 어떤내용이 있을까요?
파일에 소유권은 누구에게?

[quote="freegilyeon":29cw6049]혹시 권한문제 아닐까요?
180KB 파일에 어떤내용이 있을까요?
파일에 소유권은 누구에게?[/quote:29cw6049]

^^ 그러고 보니 속에 뭐가 들었는지 확인도 안해봤네요
지금확인해봤는데 제로보드 내용 조금 들어있어요

권한은 최고권한으로 했고요

압축 디렉토리 위치가 틀릴 수도…
정확한 설명을 위해서는 test.sh 를 오픈하세요 =.=

[quote="haze11":j03jemmk]압축 디렉토리 위치가 틀릴 수도…
정확한 설명을 위해서는 test.sh 를 오픈하세요 =.=[/quote:j03jemmk]

넵~~^^ test.sh 속의 내용은요~

[code:j03jemmk]#!/bin/sh
tar cvfp /var/backups/home_bokan_backup_$(date +%Y%m%d).tar /home/bokan/public_html/xe[/code:j03jemmk]

이건데요~ 실행시키면 압축이 잘되고요
CRON으로 하면 180Kb 짜리 압축파일이 생겨요

[quote="b0kan2":2jawf9xk][quote="haze11":2jawf9xk]압축 디렉토리 위치가 틀릴 수도…
정확한 설명을 위해서는 test.sh 를 오픈하세요 =.=[/quote:2jawf9xk]

넵~~^^ test.sh 속의 내용은요~

[code:2jawf9xk]#!/bin/sh
tar cvfp /var/backups/home_bokan_backup_$(date +%Y%m%d).tar /home/bokan/public_html/xe[/code:2jawf9xk]

이건데요~ 실행시키면 압축이 잘되고요
CRON으로 하면 180Kb 짜리 압축파일이 생겨요[/quote:2jawf9xk]

에러메시지 같은거 때문이 아닐까요?

[code:2jawf9xk]
tar cvfp /var/backups/home_bokan_backup_$(date +%Y%m%d).tar /home/bokan/public_html/xe 2>&1 > /dev/null
[/code:2jawf9xk]

[quote="ahavatar":39gfz7c1][quote="b0kan2":39gfz7c1][quote="haze11":39gfz7c1]압축 디렉토리 위치가 틀릴 수도…
정확한 설명을 위해서는 test.sh 를 오픈하세요 =.=[/quote:39gfz7c1]

넵~~^^ test.sh 속의 내용은요~

[code:39gfz7c1]#!/bin/sh
tar cvfp /var/backups/home_bokan_backup_$(date +%Y%m%d).tar /home/bokan/public_html/xe[/code:39gfz7c1]

이건데요~ 실행시키면 압축이 잘되고요
CRON으로 하면 180Kb 짜리 압축파일이 생겨요[/quote:39gfz7c1]

에러메시지 같은거 때문이 아닐까요?

[code:39gfz7c1]
tar cvfp /var/backups/home_bokan_backup_$(date +%Y%m%d).tar /home/bokan/public_html/xe 2>&1 > /dev/null
[/code:39gfz7c1][/quote:39gfz7c1]

2>&1 > /dev/null ???
이거 뭐하는 기능이죠??
null 이라는 파일 만들어서 메세지 담아주나요??

/dev/null은 말하자면 블랙홀 같은 녀석이어서 저 파일에 뭔가를 쓰면 그냥 어둠 저편으로 사라져 버립니다. 프로그램이 무언가를 stdout이나 stderr로 출력하려고는 하는데 그걸 볼 필요는 없을 때 자주 사용됩니다. 간혹 stdout이나 stderr로 출력을 제대로 하지 못하면 중간에 멈춰버리는 프로그램들이 있습니다. tar도 그렇지 않을까 싶네요. >나 2> 같은 것은 stdout과 stderr로 내보내는 출력을 /dev/null이라는 파일에 쓰라고 redirection해주는 기능을 합니다. 프로그램이 뭔가를 출력하려고 해도 /dev/null이 다 잡아먹어 버리죠. 프로그램은 어디엔가 뭔가를 쓰고 있다고 생각하고요. 그러니 프로그램은 계속 실행됩니다. 뭐 그런 얘기죠. 어쨌든, shell을 다루려면 리다이렉션과 파이프에 대해서는 알아두는 게 나중에 두고두고 도움이 됩니다.

근데, 에러 메시지가 아니라 단지 이런 저런 출력만 안하게 하려면, tar의 경우는 v 옵션을 빼버려도 됩니다.

[code:2brf83x4]
lbird@cabin:~$ tar zcf test.tgz test/
lbird@cabin:~$ tar zcvf test.tgz test/
test/
test/pebble.wol
[/code:2brf83x4]이런 예를 들면 아시리라 생각합니다.

음… 그런데요. 제 어렴풋한 기억에는, cron으로 실행되는 프로그램이 stdout이나 stderr로 출력하는 것들은 cron이 모아서 메일로 보내주지 않나요? 저것 때문에 실행이 멈추는 것도 쫌 이상해 보이긴 하는데요. cron 만지작거린지가 하도 오래라 자신은 없습니다. :)

[quote="b0kan2":25w11pzy]
2>&1 > /dev/null ???
이거 뭐하는 기능이죠??
null 이라는 파일 만들어서 메세지 담아주나요??[/quote:25w11pzy]

하고자 하는 것이 제 생각과 같다면 순서를 바꿔야 합니다.

[code:25w11pzy]> /dev/null 2>&1[/code:25w11pzy]
이렇게 되어야 합니다.
Bash에서는 [code:25w11pzy]>& /dev/null[/code:25w11pzy]또는[code:25w11pzy]&> /dev/null[/code:25w11pzy]로 쓸 수 있습니다.

모두들 감사합니다 ^^

모르는게 너무 많아서 책을 한권 사보던지 해야겠네요

조금 삼천포로 간거 같은데,
180kb 의 압축파일만 만들어지는 문제는 해결 하신건가요?

PATH문제이거나 압축 대상 디렉토리 소유권한 문제인것 같네요.

[quote="Lbird":2ng6dham]/dev/null은 말하자면 블랙홀 같은 녀석이어서 저 파일에 뭔가를 쓰면 그냥 어둠 저편으로 사라져 버립니다. 프로그램이 무언가를 stdout이나 stderr로 출력하려고는 하는데 그걸 볼 필요는 없을 때 자주 사용됩니다. 간혹 stdout이나 stderr로 출력을 제대로 하지 못하면 중간에 멈춰버리는 프로그램들이 있습니다. tar도 그렇지 않을까 싶네요. >나 2> 같은 것은 stdout과 stderr로 내보내는 출력을 /dev/null이라는 파일에 쓰라고 redirection해주는 기능을 합니다. 프로그램이 뭔가를 출력하려고 해도 /dev/null이 다 잡아먹어 버리죠. 프로그램은 어디엔가 뭔가를 쓰고 있다고 생각하고요. 그러니 프로그램은 계속 실행됩니다. 뭐 그런 얘기죠. 어쨌든, shell을 다루려면 리다이렉션과 파이프에 대해서는 알아두는 게 나중에 두고두고 도움이 됩니다.

근데, 에러 메시지가 아니라 단지 이런 저런 출력만 안하게 하려면, tar의 경우는 v 옵션을 빼버려도 됩니다.

[code:2ng6dham]
lbird@cabin:~$ tar zcf test.tgz test/
lbird@cabin:~$ tar zcvf test.tgz test/
test/
test/pebble.wol
[/code:2ng6dham]이런 예를 들면 아시리라 생각합니다.[/quote:2ng6dham]

^^ 정말 신기하게도 V옵션을 빼니까 압축이 잘 되네요 /^^

감사합니다

여담인데, v 옵션은 ‘verbose’ 모드, 즉 프로그램이 말이 많게(?) 하는 모드라지요.

다른 많은 프로그램에서 즐겨 사용되는 옵션이므로, 알아두시면 좋으실 겁니다.

일례로, ssh 같은 경우 v의 개수에 따라 애가 점점 더 말이 많아집니다. :)

[code:i5jiifb8]
ssh -v <dest>
ssh -vv <dest>
ssh -vvv <dest>[/code:i5jiifb8]
반대로, q 옵션도 많이 쓰죠. ‘quiet’ 모드입니다. 이건 말씀 안드려도 되겠죠. ;)