'팁&테크/Linux'에 해당되는 글 69건

  1. 2012.08.24 /usr/bin/bash^M: bad interpreter: No such file or directory 에러
  2. 2012.08.23 아파치 로그설정
  3. 2012.04.06 서비스 시작옵션 (메모)
  4. 2012.04.06 [메모] rsync 설정
  5. 2012.04.04 아파치 파일 캐시기능 설정
  6. 2012.03.28 rewrite 설정, 링크에 특정문자가 있을 경우 페이지 이동 룰
  7. 2012.03.26 ftp 연결을 디렉토리에 마운트 시키기
  8. 2012.03.02 sendmail + dovecot 메일 서버 구성
  9. 2012.02.29 리눅스 데몬 설명 및 불필요 데몬
  10. 2012.02.08 아파치, MySQL 서비스 등록
2012. 8. 24. 11:51

/usr/bin/bash^M: bad interpreter: No such file or directory 에러

윈도우와 유닉스계열의 new line character 문제 때문에 생기는데


vi -b 를 사용해서 파일을 열어보면 개행문자에 ^M 이라는 문자가 보인다.


이놈들을 다 지워주면 문제가 없슴


:1,$ s/^M//g 명령으로 ^M 을 전부 치환하면 된다.


다만 ^M 을 입력할때는 Ctrl + v + M 를 입력해야 한다.


추가로 ^[  은 Ctrl + v + [ 입력

2012. 8. 23. 11:52

아파치 로그설정

# 특정 Agent 접근 거부

BrowserMatch "WebZIP" go_out

BrowserMatch "Teleport" go_out

BrowserMatch "GetRight" go_out

BrowserMatch "FlashGet" go_out

BrowserMatch "JetCar" go_out

BrowserMatch "Go!Zilla" go_out

BrowserMatch "NamoWebEditor" go_out

BrowserMatch "Namo" go_out

BrowserMatch "MSFrontPage" go_out

BrowserMatch "WebTrack-HTTPP" go_out

BrowserMatch "WebSymmetrix" go_out


# 로컬 호스트 접속일때 로그 남기지 않음

SetEnvIf Remote_Addr "^127.0.0.1$" not_log

# 이미지 파일 자바스크립트 파일등.. 남기지 않음.

SetEnvIfNoCase Request_URI ".(bmp|gif|jpg|jpeg|png|css|js|java)$" not_log


# 엔진 로봇 로그를 남기 않음

BrowserMatchNoCase "ru-robot" not_log a_robot

BrowserMatchNoCase "Slurp/si" not_log a_robot

BrowserMatchNoCase "Mercator" not_log a_robot

BrowserMatchNoCase "Gulliver" not_log a_robot

BrowserMatchNoCase "SyncIT/" not_log a_robot

BrowserMatchNoCase "FAST-WebCrawler" not_log a_robot

BrowserMatchNoCase "Lycos_Spider" not_log a_robot

BrowserMatchNoCase "^ia_archive" not_log a_robot

BrowserMatchNoCase "^tv" not_log a_robot

BrowserMatchNoCase "Scooter" not_log a_robot

BrowserMatchNoCase "ZyBorg/" not_log a_robot

BrowserMatchNoCase "KIT-Fireball" not_log a_robot

BrowserMatchNoCase "Googlebot/" not_log a_robot

BrowserMatchNoCase "DIIbot/" not_log a_robot

BrowserMatchNoCase "teoma_agent3" not_log a_robot

BrowserMatchNoCase "empas_robot" not_log a_robot


# 로그 남기기

CustomLog /usr/local/apache/logs/access_log combined env=!not_log

2012. 4. 6. 10:24

서비스 시작옵션 (메모)

아파치
apachectl
- start : 시작
- stop : 종료(강제종료)
- restart : 종료후 시작(강제종료)
- graceful : 재시작(사용중인 프로세스는 작업을 완료한뒤에 재시작, 강제종료 되지 않음) -> 추천
- graceful-stop : 종료(사용중인 프로세스 자업완료 후 종료, 강제종료 되지 않음) -> 추천

각각의 서비스 기본 옵션
ex) service named help
- start : 시작
- stop : 종료(강제종료)
- restart : 종료후 시작(강제종료)
- status : 실행상태(pid정보)
- condrestart : 조건부 재시작(중요 작업시 재시작 안함)
- reload : 설정파일 다시 로드 -> 추천
- configtest : config설정 테스트

2012. 4. 6. 09:27

[메모] rsync 설정

서버 설정 -------------------------------------------------------------------

[SYMBOL]
        path = /var/named/
        uid = root
        gid = root
        use chroot = no
        read only = yes
        hosts allow = 192.168.0.1/24
        max connections = 4
        
timeout 600


path : 가져오거나 저장할 경로
uid / gid : sync시 사용할 아이디와 그룹아이디
use chroot : yes 일 경우 클라이언트에서 [SYMBOL] 경로만 쓸수 있음, no일 경우 [SYMBOL]뒤에 경로설정 가능

[가능] rsync -avz --delete --stats 서버아이피::SYMBOL /var/named/ --exclude=chroot/proc --exclude=chroot/etc
[불가] rsync -avz --delete --stats 서버아이피::SYMBOL/chroot /var/named/chroot --exclude=chroot/proc --exclude=chroot/etc

read only : 디렉토리의 쓰기 가능여부(클라이언트에서 서버로 전송시)
host allow : 접속가능한 클라이언트 아이피/접두어
max connections : 동시 접속 허용 갯수
timeout : 접속 타임아웃

클라이언트 설정 -------------------------------------------------------------------

rsync -avrz --delete --stats 서버아이피::SYMBOL/chroot /var/named/chroot --exclude=chroot/proc --exclude=chroot/etc

rsync -avrz --delete --stats 서버아이피::SYMBOL/chroot/aa.cfg /var/named/chroot/aa.cfg --exclude=chroot/proc --exclude=chroot/etc

-r recursive (하위 디렉토리까지 포함)
-a : 아카이브 모드. 심볼릭 링크, 속성, 퍼미션, 소유권 등 보존
-v : 상세하게 보여움(목록)
-z : 전송시 압축을 함
-l : 심볼릭 링크 재생성
-p : 퍼미션 업데이트
-t : 변경시간 전송 (이것이 없으면 전송한 시간으로 바뀜)
-g : 그룹이름 변경
--delete : 서버에 없는 파일을 클라이언트에서도 삭제함
--exclude : 제외할 디렉토리, 파일명
--stats : 전송결과 표시

2012. 4. 4. 12:19

아파치 파일 캐시기능 설정

변경이 자주 이루어지지 않는 특정파일들은 브라우져 캐시에서 로드 되도록 하는 아파치 설정
캐싱을 원하는 파일형식의 mime 타입을 적어 주면 됨

#모듈 로드
LoadModule expires_module modules/mod_expires.so

#기능사용(자바스크립트, css, 이미지는 브라우져 캐시 사용)
ExpiresActive On 
ExpiresByType application/javascript "access plus 1 month" 
ExpiresByType text/javascript "access plus 1 month" 
ExpiresByType text/x-javascript "access plus 1 month" 
ExpiresByType application/x-javascript "access plus 1 month" 
ExpiresByType text/css "access plus 1 month" 
ExpiresByType image/jpeg "access plus 1 month" 
ExpiresByType image/gif "access plus 1 month" 
ExpiresByType image/png "access plus 1 month" 

2012. 3. 28. 15:23

rewrite 설정, 링크에 특정문자가 있을 경우 페이지 이동 룰

RewriteEngine On

RewriteCond %{QUERY_STRING} aaaa [NC] ->쿼리스트링에 aaaa 문자가 있을 경우

RewriteRule (.*) http://주소 [R] -> 주소로 페이지 이동

2012. 3. 26. 12:06

ftp 연결을 디렉토리에 마운트 시키기

mount -t cifs //192.168.0.1/backup /mnt/backup -o username=jjjj,password=1234,iocharset=utf8,file_mode=0777,dir_mode=0777

머 이런식으로 하면 된다는데 해보지는 않았음.
편하기는 하겠지만 걸리는거는 항상 연결된 상태로 유지 하지는 않겠지?


2012. 3. 2. 10:14

sendmail + dovecot 메일 서버 구성

1. 패키지 설치
yum -y install dovecot
yum -y install cyrus-sasl

2. MTA 구성
/etc/mail/sendmail.mc 파일에서 아래 내용을 수정

#주석제거
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

#아래부분은 dnl 처리
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
또는 0.0.0.0 으로 수정

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

3. cf 파일로 반영
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
만일 cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory 와 같은 오류가 발생하면
sendmail-cf 패키지를 설치해준다.
yum install sendmail-cf 

4. 메일 사용 도메인 등록
/etc/mail/local-host-names 파일에 사용할 도메인 기재

5. 필요한 경우 virtusertable 에 계정별 메일주소 할당
/etc/mail/virtusertable 에 메일주소 + 계정 또는 포워딩 주소 할당
makemap hash virtusertable.db < virtusertable 실행

6.  sendmail 재시작

7. dovecot 설정

vi /etc/dovecot.conf
protocols = imap pop3 #필요한 서비스 기재

## conf.d/ 에 설정파일이 추가로 있을 경우
10-auth.conf 에 
disable_plaintext_auth = no
로 수정해야 plaintext 로 로그인 가능해짐

##mbox 관련
/etc/dovecot/conf.d/10-mail.conf 파일을 확인해보면 mail_location 부분이 주석처리 되어 있음
mail_location = mbox:~/mail:INBOX=/var/mail/%u
라고 하면 계정 밑에 mail 이라는 디렉토리가 필요하고, 받은 메일 내용은 /var/mail/사용자아이디에 저장된다는 내용

## telnet 로 dovecot 로그인 시 mkdir 퍼미션 오류날때.
chmod 0600 /var/spool/mail/*


8. dovecot, saslauthd 재시작 


9. AUTH적용 확인
telnet localhost 25
ehlo localhost

#결과중에 아래 내용이 있는지 확인
250-AUTH LOGIN PLAIN


10. 접속관련 설정

릴레이 및 수신관련 설정을 /etc/mail/access 파일로 한다.

아래와 같은 형태로 설정한다.

[태그:]도메인/아이피/메일주소       옵션


태그

- Connect: 주소 또는 도메인
- From : 송신자 주소
- To : 수신자 주소


옵션

- OK(모든 것을 허용(Relay)한다.)
- RELAY(관련메일의 수신/발신을 허용한다.)
- REJECT(관련메일의 수신/발신을 거부한다.)
- DISCARD (/etc/sendmail.cf에 지정된 $#discard mailer에 지정된 곳으로 메일을 폐기), 폐기하지만 아무런 오류메세지도 발생하지 않음(정상처리된 것처럼 인식)

- ??? message : ??? 는 3글자의 RFC821 에 정의된 리턴코드를 사용할 수 있고
                     message 는 오류메세지를 임의로 설정할 수 있다.
                     예) 500 오류메세지 입니다.

예) 특정아이피 릴레이 허용
Connect:127.0.0.1           RELAY

예) 특정메일주소 수신거부
TO:aaaa@aaa.com          DISCARD   #아무 오류메세지 뜨지 않음, 정상수신된것 처럼 인식
TO:aaaa@aaa.com          REJECT      # 수신오류 발생


# RFC 821 응답코드

211 System status, or system help reply
214 Help message
   [Information on how to use the receiver or the meaning of a
   particular non-standard command; this reply is useful only
   to the human user]
220 <domain> Service ready
221 <domain> Service closing transmission channel
250 Requested mail action okay, completed
251 User not local; will forward to <forward-path>
 
354 Start mail input; end with <CRLF>.<CRLF>
 
421 <domain> Service not available,
    closing transmission channel
   [This may be a reply to any command if the service knows it
   must shut down]
450 Requested mail action not taken: mailbox unavailable
   [E.g., mailbox busy]
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
 
500 Syntax error, command unrecognized
   [This may include errors such as command line too long]
501 Syntax error in parameters or arguments
502 Command not implemented
503 Bad sequence of commands
504 Command parameter not implemented
550 Requested action not taken: mailbox unavailable
   [E.g., mailbox not found, no access]
551 User not local; please try <forward-path>
552 Requested mail action aborted: exceeded storage allocation
553 Requested action not taken: mailbox name not allowed
   [E.g., mailbox syntax incorrect]
554 Transaction failed

2012. 2. 29. 15:36

리눅스 데몬 설명 및 불필요 데몬

apmd - 예전 디바이스 전원 관리 프로그램
anacron - 한번 실행용( 24시간 돌아가지 않는 시스템 적합..) - cron 쓰니까 필요없음
acpid - 최신 디바이스 전원 관리 프로그램
atd - 지정된 시간에 맞춰 실행되는 at 명령 스케쥴링을 위해 필요한 데몬
auditd - 
autofs - 파일스시템 요청시 자동 마운트
avahi-daemon  - 네트워크 서비스를 인식하는 멀리캐스트 DNS 서비스 Avahi 데몬
avahi-dnsconfd - DNS 재설정 기능을 위한 데몬
conman - 원격 콘솔 화면
cpuspeed - 유저단 CPU SPEED 데몬
cron - 작업 스케줄러 cron 데몬
cups - CUPS 설정을 위한 데몬 ( 프린트 데몬 )
dnsmasq - A lightweight DHCP and caching DNS server
애 
dund - 전화 접속을 네트워크를 사용하는 서비스 데몬
firstboot - 초기 설정 유틸리티로 설치 진행 후에 처음으로 부팅시 시스템에 의해 실행되는 데몬
gpm - 콘솔에서 마우스 지원을 위한 데몬
haldaemon - 장치를 자동으로 인식하기 위해 필요한 HAL 데몬
hidd - 불루투스 장치를 사용할 때 필요한 불루투수 ID 데몬
ibmasm - IBM 시스템 관리 드라이버들을 설정한는데 필요한 툴을 포함한 데몬
ip6tables - IPv6 방화벽
iptables - 방화벽
irda - 무선 적외선 포트를 사용하기 위한 데몬
irqbalance - 멀티프로세서에서 CPU간의 인터럽트를 분리하기 위한 데몬
kudzu - 새로운 하드웨어가 추가되었을대 검색을 위한 데몬
lvm2-monitor -  dmeventd(The Linux Kernel Device Mapper)를 사용하는
LVS(Linux Logical Volume Management)를 모니터링 하는 서비스 데몬
mcstrans - 사람이 읽기 쉬운 형식으로 보안 환경 정보로 번역하는 시스템 데몬 ( SElinux 에서 사용 )
mdmonitor - Raid  상태를 모니터링 하기 위한 데몬
mdmpd - 다중 경로의 장치를 모니터링 하고 관리하기 위한 데몬 
messagebus - 시스템 메세지를 전송하기 위한 데몬
microcode_ctl - intel CPU 의 마이크로 코드를 지원하는 데몬
multipathd - 다중 경로장치에 대해 시스템에 알려 주고 이를 일치시키고 관리하는 데몬
netconsole - 시스템으로 부터 출력된 장치에 대한 것을 원격으로 알려주는 syslog에 기록해주는 데몬
netfs - 삼바, NFS, NCP 등 네트워크 파일 시스템을 마운트하기 위한 데몬
netplugd - 네트워크 케이블을 연결했을 때 접속 여부를 리눅스 커널에게 알리기 위한 데몬
network -  네트워크 인터페이스 설정을 시스템 부팅시 커널에 적재시키는 데몬
nfs - 유닉스와 리눅스의 기본 네트워크 파일 시스템 NFS 데몬
nfslock - NFS를 통해 공유되는 파일을 클라이언트가 동시에 수정하는 것을 막기 위해 파일을 잠그는 데몬
  ( NFS 사용시 필요 )
nscd - 네임서비스에 대한 요청결과를 캐시해서 다음 요청에 응답하기 위한 데몬 - NIS와 DNS 운영시 필요
oddjobd - D-Bus system message bus를 통해 이행되는 최상위 작업에서 응답하는 최하위 어플리케이션을
   지원해주는 데몬
pand - 탭을 공백으로 변환시켜 주는 데몬
pcscd - PC/SC 스마트 카드 데몬
portmap - 원격 시스템 호출에 사용되는 데몬 ( NFS, NIS 사용시 필요 )
psacct - 프로세스 통계를 확인하기 위한 psacct 데몬
rawdevices - HDD 파티션과 같은 블론 디바이스를 위한 스크립트. /etc/sysconfig/rewdevices 파일을 편집하여
원시 디비아스를 블론 디바이스로 매핑할수 있다
rdisc - 동적 라우팅에서 라우터를 자동으로 찾기 위한 데몬
readahead_early - 모든 데몬이 시작하기 전에 특정 파일을 사용하기 앞서 메모리에 미리 불러들여 속도를 높이기
                           위한 데몬
readahead_later - readahead_early 와 같은 형식
restorecond - SElinux 와 관련된 데몬
rpcgssd - 원격 인증을 위한 GSS(General Security Service)를 관리하는 사용자 레벨의 데몬으로
               NFS version 4 Client를 위해 필요
rpcidmapd - 원격 이름 매핑을 위한 idmap (ID mapping) 데몬으로 NFS version 4를 위한 유저레벨 데몬
rpcsvcgssd - 원격 인증을 위한 GSS(General Security Service)를 관리하는 사용자 레벨의 데몬으로
                    NFS version 4 Client를 위해 필요
saslauthd - SASL(Simple Authentication and Security Layer)을 이용한 암호화된 사용자 인증을 위한 데몬
sendmail - 메일서버 sendmail 데몬
smartd - 시스템 모니터링을 위한 데몬
sshd - ssh 서버 데몬
syslog - 시스템 로그를 관리하기 위한 데몬
tcsd - 
wpa_supplicant - 무선 네트워크 접속에 사용되는 WPA 데몬
xfs - X윈도우의 폰트를 관리하기 위한 데몬
ypbind - NIS 서버 데몬
yum-updatesd - 온라인 패키지 관리도구인 yum 에 관련된 프로그램 업데이트 데몬
2012. 2. 8. 14:16

아파치, MySQL 서비스 등록

1. MySQL 서비스 등록

/MySQL설치디렉토리/share/mysql/mysql.server 을 서비스용 스크립트로 사용하면 됩니다.

/etc/rc.d/init.d/ 에 서비스에서 사용하는 모든 스크립트가 위치하므로 거기에 파일을 만들면 되니깐 아래와 같이 하면 됩니다.

1. cd /etc/rc.d/init.d -> 디렉토리 이동

2. ln -s /usr/local/mysql/support-files/mysql.server mysqld -> 소프트링크를 만들어 줍니다.(복사해도 됨)

3. chkconfig --add mysqld -> mysqld 를 서비스로 등록 합니다.

4. chkconfig --level 2345 mysqld -> 서비스 시작레벨을 3으로(이건 안해줘도 됩니다.), 실행레벨은 아래 참고

5. ntsysv -> 리눅스 부팅 시 시작되도록 설정 되있는지 확인

#   각 실행 레벨 설명
#   0 - halt (Do NOT set initdefault to this) 종료모드
#   1 - Single user mode 단일 사용자 모드
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking) 다중 사용자 텍스트 모드
#   하지만 NFS를 쓰지 않는다.
#   3 - Full multiuser mode 다중 사용자 텍스트 모드
#   4 - unused 사용하지 않는다.
#   5 - X11 다중사용자 X windows 모드
#   6 - reboot (Do NOT set initdefault to this) 재가동 모드


2. Apache 서비스 등록

/아파치설치디렉토리/bin/apachectl 을 서비스용 스크립트로 사용하면 됩니다.

다만 스크립트내에 환경설정 파일 위치등의 주석문을 추가해야 합니다.

1. 아래 주석을 자신의 경로에 맞게 수정후 apachectl 에 추가합니다.

# chkconfig: 2345 90 90
# description: init file for Apache server daemon
# processname: /usr/local/apache/bin/apachectl
# config: /usr/local/apache/conf/httpd.conf
# pidfile: /usr/local/apache/logs/httpd.pid 

2. cd /etc/rc.d/init.d -> 디렉토리 이동

3. ln -s /usr/local/apache/bin/apachectl httpd -> 소프트링크를 만들어 줍니다.(복사해도 됨)

4. chkconfig --add httpd -> mysqld 를 서비스로 등록 합니다.

5. chkconfig --level 2345 httpd -> 서비스 시작레벨을 3으로(이건 안해줘도 됩니다.), 실행레벨은 아래 참고

6. ntsysv -> 리눅스 부팅 시 시작되도록 설정 되있는지 확인