윈도우 Service로 등록해 두면, 부팅시 자동으로 실행되어 WAS나 MySQL 같은 서비스를 구동할 수 있다.

윈도우에서는 NSSM이라는 .bat / .exe / .cmd 파일등을 실행해주는 툴이 있고, (https://nssm.cc/)
리눅스는 inetd 라는 녀석에 등록해 둘 수 있지만, MAC은 찾질 못해 혜매다가 겨우 찾아서 포스팅한다.

필요한 사전 지식은 3가지이다.

1. xxxx.plist : 실행할 프로세스의 정보
2. launchd : 런칭데몬
3. launchctl : 런칭데몬을 제어하는 녀석

먼저 xxxx.plist는 "/Library/LaunchDaemons"에 위치하도록 하자.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
 <dict>
 <key>Label</key>
 <string>com.example.app</string> 
 <key>Program</key>
 <string>/Users/Me/Scripts/cleanup.sh</string>
 <key>RunAtLoad</key>
 <true/>
 </dict>
</plist>


위의 .plist에서 변경할 부분은 
<string>com.example.app</string> ==> 해당 되는 걸로 바꿔준다. 예를 들어 Unity Cache Server라면... 임의로 <string>com.unitycache.serverd</string> 등으로 변경한다.
<string>/Users/Me/Scripts/cleanup.sh</string> ==> 실제 .sh 파일이 실행되는 경로로 변경한다.
이렇게 변경하고 저장하면 실행시 자동으로 실행하겠다는 뜻이다.

남은건, owner를 root로 변경하고 권한을 변경하는 일이다.
간단히
su 
{패스워드 입력}
chown root xxxx.plist
chmod 644 xxxx.plist
하면 끗!
만약 root사용을 풀어 놓지 않았다면, 
su -s 
라는 명령을 내리면 패스워드를 설정하라고 나옴.

이제 마지막으로 launchd에 load하면 모든 작업이 완료된다.
sudo launchctl load /Library/LaunchDaemons/xxxx.plist
삭제는 
sudo launchctl unload /Library/LaunchDaemons/xxxx.plist
launchctl은 언제 사용하냐면... launchd에 load 완료후 다음과 같이 사용한다.
- 시작
launchctl start com.example.app
- 중지
launchctl stop com.example.app
2015/02/13 23:35 2015/02/13 23:35
어차피 MAC OSX는 Free BSD 기반의 OS이므로 Linux 나 unix도 마찬가지로 작동할 것 같음.

- 폴더에 여러개의 서브 폴더가 있고, 그 안에 파일들이 흩어져 있는 상황에서 사용.

- 터미널 열고 "mkdir XXX"로 폴더 생성

- 터미널에서 다음과 같이 명령
find ./ -name '*.abc' | while read FILE; do cp "$FILE" ./XXX/ ; done



.abc로 끝나는 파일을 모두 찾아서 XXX 폴더로 복사하게 됨.

2011/09/23 16:36 2011/09/23 16:36
보통 아파치 SSL을 이용하면 지정된 패스워드를 물어보게 된다.
이경우 이만저만 불편한게 아닌데 (특히 자동으로 띄울때) 자동응답하게 하는 방법이있다.

일단 SSL의 비밀번호가 "1234"라고 가정하면
원하는 경로에 "auto.sh"을 만들자

#!/bin/sh
echo "1234"


그리고 Apache configure를 고쳐주면 된다.
#SSLPassPhraseDialog  builtin <<-- 이부분을 스킵시키고 다음을 넣어주자
SSLPassPhraseDialog  exec:/auto.sh <<-- 경로에 주의


2009/06/25 00:35 2009/06/25 00:35
아주 간단함
/etc/rc.local 에 데몬 실행 명령 또는 Script를 넣어주면 부팅때 자동으로 올라오는데 간혹 root가 아닌 계정으로 실행하고자 할때는

su - [계정명] -c [실행명령]


으로 가능하다.
2009/06/25 00:31 2009/06/25 00:31
리눅스도 피차일반 마찬가지이니 명령만 좀 알아주면 참으로 편하게 몇십대씩 관리할 수 있다.

1. 먼저 각각의 서버에 SSH 데몬이 구동중이라고 가정한다.
2. 먼저 키를 생성하자.
    [host:/] ssh-keygen -t rsa
3. unix라면 "/.ssh", linux라면 "/root/.ssh"에 들어가보자.
4. 디렉토리 하단에 "authorized_keys", "id_rsa.pub" 2개 파일이 있다.
5. "[host:/.ssh/] mv authorized_keys keybak"명령으로 백업한다.
6. "[host:/.ssh/] cp id_rsa.pub authorized_keys"로 복사한다.
7. "[host:/.ssh/] mkdir /sshshell"로 디렉토리를 생성하자.
8. "cd /sshshell"로 디렉토리를 이동하고 서버리스트를 만들자.(여기서는 그냥 list로 함)
9. "vi list"한후에 서버리스트를 IP 또는 Host파일에 등록된 hostname으로 기재하고 "wq"!
    예) list
         111.222.333.441
         111.222.333.442
         111.222.333.443

10. "vi keyput.sh"로 shell script생성
     예) keyput.sh
#!/bin/sh
# Pushes ssh keys
if [ -z $1 ]
then
echo "Syntax: $0 server-list "
exit 1
fi
boxlist=$1
for box in `cat $boxlist`
do
echo "<<< $box >>>"
#for Unix
scp /.ssh/authorized_keys $box:/.ssh/
#for Linux
#scp /root/.ssh/authorized_keys $box:/root/.ssh/
done 

 11. "keyput.sh list"라고 명령하여 list에 기재된 서버 전부에게 키를 전송
 12. "vi shell.sh"로 명령할 Script를 생성하자.
#!/bin/sh
# Run Command
if [ -z $1 ]
then
echo "Syntax: $0 server-list "
exit 1
fi
boxlist=$1
for box in `cat $boxlist`
do
echo "<<< $box >>>"
#get hostname
ssh $box -l root hostname
done 


 13. "shell.sh list"로 명령하면 끄읏.

2008/02/15 16:01 2008/02/15 16:01
HP unix도 동일하다.

1. 시스템이 "/","/etc"이렇게 2개로 되어 있고 기본 BOOT는 "/"이며 별도 파티션으로 "/etc"를 구성하였다고 치자.

2. "/etc"가 맘에 안들어서 "/ext"로 바꾸려하고 한다면

3. 먼저 /etc를 umount한다
root /> umount /etc

4. /etc밑의 fstab에서 mount 설정값을 변경한다.
"LABEL=/etc      /etc         ext3          default        1   2"
이렇게 된 줄을 찾아서 다음과 같이 고친다.
"LABEL=/etc      /ext         ext3          default        1   2"

5. ext디렉토리를 생성한다.
root /> mkdir ext

6. 마운트 시킨다
root /> mount -a

7. df로 확인한다.

2007/10/08 15:26 2007/10/08 15:26
퍼미션(권한)

Owner

Group

Other

Owner와 Group은 파일소유자자신과 자신이 속한그룹. Other은 제3자, 웹사이트 방문객은 제3자로 nobody로 취급.

r

w

x

r

w

x

r

w

x

r은 파일 읽기(4), w는 파일 쓰기(2), x는 파일 실행(1)

7

5

5

파일소유자는 그것을 읽고 쓰고 실행시킬 수 있지만, 제3자는 읽고 실행만 시킬 수 있다.

7

7

7

제3자도 쓰기 권한이 주어진다.


기타
chmod [권한] [파일/디렉토리] : 권한 변경
ls -l  x : x파일의 자세한 상황
ln -s x y : x에서 y로 심볼릭 링크 생성
find x -name y -print : 디렉토리 x에서 y를 찾아 화면에 표시
ps : 프로세스
kill x : x종료
[alt] + F1~F7 : 콘솔변경
lilo : 부트 디스크 생성
2006/03/16 15:47 2006/03/16 15:47
리눅스 필수명령어

Linux/Unix 명령어

설 명

MS-DOS 비교

./x

x 프로그램 실행
(현재 디렉토리에 있는 것)

x

/

이전에(↑) / 다음에(↓) 입력했던 명령어

doskey

cd x (또는 cd /x)

디렉토리 X로 가기

cd

cd .. (또는 cd ../ 또는 cd /..)

한 디렉토리 위로 가기

cd..

x 다음 [tab] [tab]

x 로 시작하는 모든 명령어 보기

-

adduser

시스템에 사용자 추가

/

ls (또는 dir)

디렉토리 내부 보여주기

dir

cat

터미널 상의 텍스트 파일 보기

type

mv x y

파일 x를 파일 y로 바꾸거나 옮기기

move

cp x y

파일 x를 파일 y로 복사하기

copy

rm x

파일 지우기

del

mkdir x

디렉토리 만들기

md

rmdir x

디렉토리 지우기

rd

rm -r x

디렉토리 x를 지우고 하위도 다 지우기

deltree

rm p

패키지 지우기

-

df (또는 df x)

장치 x의 남은 공간 보여주기

chkdsk ?

top

메모리 상태 보여주기(q는 종료)

mem

man x

명령어 x에 관한 매뉴얼 페이지 얻기

/

less x

텍스트 파일 x 보기
(리눅스에서는 더 많은 필터 적용 가능)

type x | more

echo

어떤 것을  echo 화면에 인쇄한다.

echo

mc

UNIX를 위한 노턴 커맨더

nc

mount

장치 연결(예: CD-ROM, 연결을 해제하려면 umount)

-

halt

시스템 종료

-

reboot ([ctrl] + [alt] +[del])

시스템  다시 시작하기

[ctrl] + [del] + [del]


2006/03/15 22:09 2006/03/15 22:09
압축명령어 사용법
압축 명령어

사 용 법

tar .tar, _tar로 된 파일을 묶거나 풀때 사용하는 명령어
(압축파일이 아님)

# tar cvf [파일명(.tar, _tar)] 압축할 파일(또는 디렉토리): 묶을때
# tar xvf [파일명(.tar, _tar)]  :  풀 때
  (cf) cvfp/xvfp 로 하면 퍼미션 부동
compress 확장자 .Z 형태의 압축파일 생성

# compress    [파일명]     : 압축시
# uncompress [파일명]    : 해제시
gzip 확장자 .gz, .z 형태의 압축파일 생성

#  gzip     [파일명]    : 압축시
#  gzip -d [파일명]   : 해제시
기타 .tar.Z
이것은 tar로 묶은 후에 compress를 사용하여 압축한 것으로 uncompress를 사용해서 압축을 푼 다음, 다시 tar를 사용해서 원래의 파일들을 만들어내면 됩니다. 아니면 다음과 같이 한 번에 풀 수도 있다.
# zcat  [파일명].tar.Z  : 해제시

.tar.gz또는 .tar.z
# gzip -cd [파일명]    : 해제시

.tar.gz 또는 .tar.z .tgz
gzip을 사용해서 푼 다음 다시 tar를 사용해서 원래 파일을 만들어 낼 수 있으나,하지만 다음과 같이 하면 한 번에 처리를 할 수 있다.

# gzip -cd 파일.tar.gz | tar xvf -  또는
# tar xvzf 파일.tar.gz
# tar xvzf 파일.tgz

2006/03/15 22:09 2006/03/15 22:09
리눅스 기본명령어

명령어

사 용 법

login

사용자 인증과정

리눅스 시스템은 기본적으로 multi-user 개념에서 시작하였기 때문에 시스템을 이용하기 위해서는 반드시 로그인을 하여야 합니 다. 로그인은 PC 통신에서도 많이 사용되어져왔기 때문에 그 개 념  설정에 그다지 어려움이 없을 것입니다. 흔히 말하는 ID를 입력하는 과정입니다. 

passwd

패스워드 변경

리눅스, 특히 인터넷의 세계에서는 일반 컴퓨팅 상황에 비하여 훨씬 해킹에 대한 위험이높습니다. 패스워드는 완성된 단어 보다는 단어 중간에 숫자나 키보드의 ^, #, ' 등과
같은 쉽게 연상 할 수 없는 기호를 삽입하여 만들어 주는 것이 좋습니다

du

하드사용량 체크(chkdsk)

자신의 하드공간을 알려면
# du
특정 디렉토리의 사용량을 알려면
# du -s diretory_name

ls

파일 리스트 보기(dir)

F : 파일 유형을 나타내는 기호를 파일명 끝에 표시
   (디렉토리는 '/', 실행파일은 '*', 심볼릭 링크는 '@'가 나타남).
l  : 파일에 관한 상세 정보를 나타냅니다.
a : dot 파일(.access 등)을 포함한 모든 파일 표시.
t  : 파일이 생성된 시간별로 표시
C : 도스의 dir/w명령과 같 이 한줄에 여러개의 정보를 표시
R : 도스의 dir/s 명령과 같이 서브디렉토리 내용까지.

(예)
# ls -al  
# ls -aC
# ls -R

cd

디렉토리를 변경

# cd cgi-bin     : 하부 디렉토리인 cgi-bin으로 들어감.
# cd  ..             : 상위디렉토리로 이동
# cd 또는 cd ~  : 어느곳에서든지 자기 홈디렉토리로 바로 이동
# cd /webker     : 현재 작업중인 디렉토리의 하위나 상위 디렉토리가
                         아닌 다른 디렉토리(webker)로 이동하려면 /로
                         시작해서 경로이름을 입력하면 된다.

cp

화일 복사(copy)

# cp index.html index.old
    : index.html 화일을 index.old 란 이름으로 복사.

# cp /home/test/*.*  .
    : test 디렉토리내의 모든 화일을 현 디렉토리로 복사.

mv

파일이름(rename) / 위치(move)변경

# mv index.htm index.html
    : index.htm 화일을 index.html 로 이름 변경

$ mv file  ../main/new_file
    : 파일의 위치변경

mkdir

디렉토리 생성

# mkdir download  : download 디렉토리 생성

rm

화일삭제

# rm test.html : test.html 화일 삭제
# rm -r <디렉토리> : 디렉토리 전체를 삭제
# rm -i a.*
    : a로 시작하는 모든 파일을 일일이 삭제할 것인지 확인하면서 삭제

rmdir

디렉토리 삭제

# rmdir cgi-bin : cgi-bin 디렉토리 삭제

pwd

현재의 디렉토리 경로를 보여주기

pico

리눅스용 에디터

put

ftp 상태에서 화일 업로드

> put  guestbook.tar.gz

get

ftp 상태에서 화일 다운로드

> get  guestbook.tar.gz

mput 또는 mget

여러개의 화일을 올리고 내릴때 (put,get과 사용법동일)

chmod

화일 permission 변경

리눅스에서는 각 화일과 디렉토리에 사용권한을 부여.

예) -rwxr-xr-x   guestbookt.html
rwx  :처음 3개 문자 = 사용자 자신의 사용 권한
r-x  :그다음 3개 문자 = 그룹 사용자의 사용 권한
r-x  :마지막 3개 문자 = 전체 사용자의 사용 권한

읽기(read)---------- 화일 읽기 권한
쓰기(write)---------- 화일 쓰기 권한
실행(execution)---------- 화일 실행 권한
없음(-)---------- 사용권한 없음

명령어 사용법
chmod [변경모드] [파일]

# chmod 666  guestbook.html
    : test.html 화일을 자신에게만 r,w,x 권한을 줌

# chmod 766  guestbook.html
    : 자신은 모든 권한을 그룹사용자와,전체사용자에게는
      읽기와 쓰기 권한만 줌

alias

" doskey alias" 와 비슷하게 이용할 수 있는 쉘 명령어 alias는 말그대로 별명입니다.
사용자는 alias를 이용하여 긴 유 닉스 명령어를 간단하게 줄여서 사용할 수도 있습니다.
이들 앨리어스는 [alias ls 'ls -al'] 같이 사용하시면 되는데, 한 번 지정한 alias를 계속해서 이용하시려면, 자신의 홈디렉토리에 있는 .cshrc(Hidden 속성)을 pico등의 에디터를 이용하여 변경시 실행 시키면 됩니다.

cat

파일의 내용을 화면에 출력하거나 파일을 만드는 명령( 도스의 TYPE명령)

# cat filename

more

cat 명령어는 실행을 시키면 한 화면을 넘기는 파일일 경우 그 내용을 모두 볼수가 없다.
하지만 more 명령어를 사용하면 한 화면 단위로 보여줄 수 있어 유용.

# more <옵션>
옵션은 다음과 같습니다.

Space bar : 다음 페이지
Return(enter) key : 다음 줄
v : vi 편집기로 전환
/str : str 문자를 찾음
b : 이전 페이지
q : more 상태를 빠져나감
h : 도움말
= : 현재 line number를 보여줌

who

현재 시스템에 login 하고 있는 사용자의 리스트를 보여줍니다.

# who

whereis

소스, 실행파일, 메뉴얼 등의 위치를 알려줍니다

# whereis perl : perl의 위치를 알려준다

vi,
touch,
cat

새로운 파일을 만드는 방법

# vi newfile :  vi 편집기 상태로 들어감
# touch newfile : 빈 파일만 생성됨
# cat > newfile  : vi 편집기 상태로 들어감, 문서 작성후 Ctrl+D로 빠져나옴

cat,
head,
tail

파일 내용만 보기

# cat filename         : 파일의 내용을 모두 보여줌
# head -n filename : n줄 만큼 위세서부터 보여줌
# tail -n filename     : n줄 만큼 아래에서부터 보여줌


2006/03/15 21:55 2006/03/15 21:55