sendmail 큐에 쌓여있는 메일 바로 발송하기 여러 이류로 인해 발송되지 못하고 큐에 쌓인경우, 서버자원을 점유하여 부하를 발생시킬 수 있다. 이런 경우,큐에 쌓인 메일을 바로 발송할 수 있다. /usr/sbin/sendmail -oQ/var/spool/mqueue -oT1d -q -v
자원을 삭제할 때는 ipcrm 라는 명령어 # 필요성 특정 프로세스가 가지고 있던 자원들을 해제하지 않으면서 생긴 문제를 해결하기 위함이다. 예를 들어 DBMS에 대해서 kill을 했지만, IPC 자원을 해제않는 경우를 확인할 수 있고, 이를 통해서 자원이 낭비되고, 이런식으로 계속 문제가 되면, 시스템 전체에 영향을 미칠 수 있기 때문이다. 예를 들어 apache 데몬의 경우 restart를 했는데, 다음과 같이 세마포를 계속 가지고 있을 수 있다. ------ Semaphore Arrays -------- key semid owner perms nsems 0x00000000 13434880 www 600 1 0x00000000 13467649 www 600 1 0x00000000 13500418 www 600 1 0x00000000 13533187 www 600 1 0x00000000 13565956 www 600 1 ipcs -s |sed "/em/d" | for i in `awk '{print $2}'` ; do ipcrm sem $i ;
# IPC(Inter Process Communication)는 message queue( q), shared mem ( m), semaphore (s)의 자원의 현황을 알려준다. # ipcs - provide information on ipc facilities # SYNOPSIS ipcs [ -asmq ] [ -tclup ] ipcs [ -smq ] -i id ipcs -h # IPC 모든 타입에 대한 리소스 정보 출력 # ====================================================================== # # ipcs ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00000000 3407872 nobody 600 328 11 dest 0x00000000 3440641 root 600 524288 11 dest 0x00000000 1998850 root 600 184324 11 dest
nginx rewirte, redirect 주소변환 설정모음 nginx 에서 주소변경 nginx 에서 주소변환 # domain.com 으로 접속 시 newdomain.com 으로 리다이렉토 server { server_name domain.com; return 301 http://www.newdomain.com$request_uri; } #domain.com/change/view.php?no=1000으로 접속 시domain.com/changed/article.php?art_no=1000으로 변환 server { server_name domain.com; location ~* ^/change/(.*)$ { rewrite ^/change/(.*)$ http://domain.com/changed/$1 permanent; break; } #domain.com/~~~으로 접속 시 newdomain.com/~~~으로 변환 server { server_name domain.com; location ~* ^(.*)$ { rewrite ^(.*)$ http://www.newdomain.com$1 permanent; break; } #domain
nginx net::ERR_INCOMPLETE_CHUNKED_ENCODING 크롬에서 nginx 로 페이지 요청 시 페이지가 로딩되지 않고net::ERR_INCOMPLETE_CHUNKED_ENCODING 에러가 발생하는 경우 해결방법 nginx 설정에proxy_buffering: off; 설정을 추가한다.
디비 덤프 시 아래와 같은 오류가 있는경우 체크 할 사항 # 덤프 시 에러내용 root@web:/var/lib/mysql5# mysqldump -u root -p database> database.sql Enter password: mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064) # 체크 할 사항 설치된 데이터베이스 서버와 클라이언트툴의 버전이 맞는지 체크한다. 서버의 경우 소스 컴파일하여 5.6.x를 설치하였지만 클라이언트툴은 rpm 으로 기본 설치된 5.0.x의 클라이언트툴이 PATH에 먼저 잡히면서 덤프 시 위와같은 오류가 있는 경우가 많다. 실제 설치한 경로에 있는 mysqldump 명령어를 활용하면 해결될 수 있따.
# chhrootkit 설치오류 # 오류 [root@www chkrootkit-0.52]# make sense cc -static -o strings-static strings.c /usr/bin/ld: cannot find -lc collect2: ld returned 1 exit status make: *** [strings-static] Error 1 # 해결방법 yum install glibc-static
#####vi /etc/logrotate.d/mysql /var/lib/mysql5/db-slow.log {dailyrotate 7missingokpostrotate/opt/webapps/mysql5/bin/mysqladmin flush-logsendscript}################################################# #daily : 로그파일을 날짜별로 변환#rotate : 지정 갯수 이상되면 예전 log파일 삭제#missingok : 로그파일이 없더라도 오류를 발생시키지 않음#postrotate-endscript :사이에 들어있는 명령어 실행 ################################################# ####메일 스크립트#!/bin/bashYEAR=`date +%Y`MONTH=`date +%m`DAY=`date +%d`SUBJECT="$YEAR$MONTH$DAY DB 슬로우쿼리입니다"EMAIL="메일주소"EMAILMESSAGE="/var/lib/mysql5/db-slow.log-$YEAR$MONTH$DAY" /bin/mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSA
# 아파치 php 버전 숨기기확인하기 : curl -I http://localhost변경사항 : php.ini에서 expose_php = Off 로 변경 # HTTP 헤더 아파치 버전 숨기기확인하기 : curl -I http://localhost변경사항 : ServerTokens ProductOnly # 아파치 보안권장 설정. 404페이지에서 버전 숨기기ServerSignature Off
vi 명령모드에서 sed 사용법 ■ 특정단어가 들어간 경우 삭제 :g/word/d 혹은 :%g/word/d ■정확히 맞는 단어가 들어간 경우만 삭제하기 :g/<word>/d
echo 1 > /proc/sys/vm/drop_cachesecho 2 > /proc/sys/vm/drop_cachesecho 3 > /proc/sys/vm/drop_caches drop_caches 1 : Page cache해제drop_caches 2 : inode, dentry cache 해제drop_caches 3 : Page cache, inode cache, dentry cache 해제캐시 삭제 시 시스템이 잠시 멈출 수 있음. 캐시메모리 반환 설정설정 값 확인 :cat /proc/sys/vm/vfs_cache_pressure설정하기 :echo 10000 > /proc/sys/vm/vfs_cache_pressure 혹은vm.vfs_cache_pressure = 10000영구적으로 설정 :/etc/sysctl.conf 파일에 vm.vfs_cache_pressure = 10000 추가 추가적으로 공부할 것https://wiki.kldp.org/Translations/html/The_Linux_Kernel-KLDP/tlk3.html
apache에서 모든 URL을 https로 변경하기 방법 1 : redirect 활용 <VirtualHost *:80> ServerAdmin system@mail.com DocumentRoot /home/user/www ServerName www.domain.com RedirectMatch /(.*)$ https://www.domain.com/$1 </VirtualHost> 방법 2 : rewrite rule <VirtualHost *:80> ServerAdmin system@mail.com DocumentRoot /home/user/www ServerName www.domain.com RewriteEngine On RewriteCond %{HTTPS} off RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent] </VirtualHost>