프로그래밍 QnA

kimyh의 이미지

특정 시간대만 FTP를 열게 할수 있는 쉘 스크립트 작성 좀 알려 주세요.

지금 두대의 서버를 가지고 DB를 서로 다른 서버에 FTP를 이용하여 백업받고 있습니다.
물론 쉘 스크립트를 만들어 크론 테이블에 올려서 하고 있습니다.

그런데 이렇게 하다보니 FTP가 항상 접속 가능한 상태로 되어있어 해커의 위험에 노출될
우려가 있을거 같아 DB를 백업받는 시간대에만 FTP를 접속하고 DB백업이 끝나면 자동적으로 FTP의 접속 자체가 않되게 하고 싶습니다.

물론 크론 테이블에 그러한 내용을 올려야 하겠지요.

그런데 FTP접속을 열고 끊게 하는 쉘 스크립트를 만들려니 도저히 감이 안 잡히는군요.

sinxine111의 이미지

mmap 함수 질문입니다.

안녕하세요. 질문이 있습니다.

보드에 TACT 스위치가 32개가 74_16C245를 통해서 연결되어 있습니다.
아래 소스는 간단하게 키 스캔한걸 1초에 한번씩 시리얼로 내보내는건데요.

아래 소스는 short 로 선언이 되어있으니깐 당연히 키 16개만 읽혀지는데요.

그래서 32개 키 값을 다 읽기 위해 2번 처럼(long) 바꿨는데요.

역시 16개만 읽혀지네요.

별짓을 여러가지고 바꿀거 바꿔봤는데요 결과는 똑같구요.

간단한 mmap 함수 사용이니깐 특별할것 없는것 같은데 안되네요.

yhlvyp의 이미지

리눅스기반 라우터에서 라우팅테이블만을 갱신하고 forwarding은 안되게?

리눅스 기반 기가빗 라우터에서 fault tolerance데몬을 구현중입니다.

master라우터가 있고 standby상태의 slave라우터가 있습니다.

이때 master만이 라우팅을 해주는 것이죠

이 master가 죽게 되면 slave가 master의역할을 대신 수행하게 됩니다.

이때 신속한 전환을 위해

slave가 standby상태에 있을때 slave의 라우팅테이블을 master와 같은 상태로 유지하려 합니다.

물론 master에게 주기적으로 request하여 받는 방법도 있겠지만

그것보다는 어짜피 slave서버가 master가 받고있는 라우팅정보 패킷을 동시에 받을수 있으므로

sjg0120의 이미지

'만들면서 배우는 os커널의 구조와 원리'중에......

안녕하세요 그동안 여기 수준이 너무 높은것 같아
눈팅만 했는데 결국 처음으로 글을 올리게 되는군요
이제 막 커널 공부를 시작하려고 하는데 시작하자마자 막히네요
nasm으로 부트섹터만드는걸 하고있는데
times 510-($-$$) db 0
이런 문장이 있더군요...이게 510번까지 0으로 채우라는 명령이라고 나와있는데
이게 왜이렇게되는지 잘모르겠네요 ㅜㅜ
허접스럽지만 설명좀 해주시면 감사하겠습니다~

handrake의 이미지

유닉스와 리눅스 시그널의 차이점?

안녕하세요,
이번에 작은 프로그램을 하나 맡게 되었는데요, 이 프로그램은 전부 System V Unix용으로 짜여 있습니다. 제 일은 이걸 전부 Linux (Redhat 엔터프라이즈 버젼 3, 4)로 포팅하는 것입니다. 제가 유닉스 프로그래밍을 많이 접해보지는 못한 터라 어려운 부분이 많네요.
현재 막힌 부분은 시그널 처리에 관한 부분에서 유닉스와 리눅스의 구현이 약간 다른거 같아서 입니다. 현재 프로그램에서는 시그널을 전부 sigsend()를 사용해서 보내고 있는데요, 리눅스 man 페이지를 읽어보니 sigaction()이나 sigqueue()를 사용해서 구현 해야 되는 하는것 같더라고요. 그런데 sigsend()는 같은 사용자의 프로세스에 전부 시그널을 보내는 등의 기능이 있던데 이건 리눅스에서도 비슷한 기능이 있나요? 없다면 sigsend()를 랩퍼 함수로 만들어서 구현하는것이 좋을까요?

shamlock의 이미지

cvs notify 1.1.0 설치에러

cvs notify 1.1.0 설치를 하고
체크아웃해서 실행해보았더니 아래와 같은 에러가 발생합니다

Insecure dependency in require while running setgid at /home/cvs/CVSROOT/cvsnotify-commitinfo.pl line 12.
cvs commit: Pre-commit check failed
cvs [commit aborted]: correct above errors first!
cvs commit: saving log message in /tmp/cvsAIU4Oj

수동으로도 설치해보고
자동으로도 해봣는데.. 다 동일한 메시지인거 같습니다.
도와주세요

잠수오리배의 이미지

printf 종류의 함수와 putchar 종류의 함수의 차이

Beginning Linux Programming 의 터미널 파트를 보고 있습니다.

setupterm() 함수로부터 시작하는 터미널 출력을 공부하고 있는데요,

tigetstr()로 넘겨받은 터미널 이스케이프 시퀀스를 tparm()으로 매개변수를 수정하여 다시 출력해보는 실습을 하다가 궁금한게 생겼습니다!!

tparm()을 사용하여 터미널 이스케이프 시퀀스를 터미널에 전송하는데, printf를 사용하면 안되고 putp, tputs를 사용하라고 책에서 일러주네요. 터미널이 연산을 완료하는 동안 필요한만큼 적절히 지연시킬 수 있어야 한다고...

rabbitkang의 이미지

kernel 상에서 virtual address 와 할당된 length 가지고 page정보를 알수 있나요?

kernel 상에서 kmalloc을 가지고 메모리를 할당 했을때
virtual address 와 할당된 length 가지고
해당 struct page *page정보를 알수 있나요??
알수 있는 함수나.. 등등...

kernel 고수님들.. 답변 부탁합니다.

pok의 이미지

배시스크립트에 if []구문에 관한 질문입니다.

DNS에 새로운 네임서버를 추가하고 싶은데 있으면 추가 안하려합니다.

if grep $DNS /etc/resolv.conf
then echo already
else echo nameserver $DNS >> /etc/resolv.conf
fi

이렇게 해서 사용하고 있습니다. 그런데, []구문이랑 어떻게 다르나요?
그러니까...
if [ "grep $DNS /etc/resolv.conf" ]
then echo already
else echo nameserver $DNS >> /etc/resolv.conf
fi

는 작동을 안하는것 같은데, 어떤이유인지요?
그리고 if에 관련된 여러 팁들도 부탁드리
cbers의 이미지

텍스트 파일을 카피해주는 프로그램을 만드는데.워닝이..

#include <stdio.h>

int main(int argc, int *argv[])
{
    char ch;
    FILE* src = fopen(argv[1], "rt");
    FILE* dst = fopen(argv[2], "wt");

    if(argc!=3)
        return 1;

    while(1)
    {
        ch=fgetc(src);
        if(feof(src)!=0)
            break;
        fputc(ch, dst);
    }

    return 0;
}

FILE* src = fopen(argv[1], "rt");
FILE* dst = fopen(argv[2], "wt");

여기서 워닝이 나는데요..

페이지

프로그래밍 QnA 구독하기