태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'ETC'에 해당되는 글 119건

  1. 2010/06/19 [e-TRAYz] mysql 외부접속설정
  2. 2010/05/18 [e-TRAYz] 활용팁 자동패치 + 프로그램 자동설치 (25)
  3. 2010/02/25 [리눅스] MySQL 백업
  4. 2010/02/25 [리눅스] 계정(폴더/파일) 백업
  5. 2010/02/25 [리눅스] 달력 출력하기
  6. 2010/02/24 [e-TRAYz] Internal Server Error (HTTP 오류 403 - 사용 금지)
  7. 2010/02/24 [e-TRAYz] 로그파일에, 경로/브라우저명/호스트명/국가코드 기록하기
  8. 2010/02/24 [e-TRAYz] mod_rewrite 적용하기
  9. 2010/02/23 [e-TRAYz] 펌웨어 1.0.4-official 버전 릴리즈
  10. 2010/02/23 [e-TRAYz] Xtreamer Connect 1.0.4
  11. 2010/02/21 [e-TRAYz] Xtreamer Connect 1.0.3
  12. 2010/02/21 [e-TRAYz] Xtreamer Connect 1.0.0
  13. 2010/02/21 [e-TRAYz] e-TRAYz 모니터링 (Nice e-TRAYz statistics)
  14. 2010/02/21 [리눅스] 쉘스크립트 - FTP 파일송수신
  15. 2010/02/21 [리눅스] 쉘스크립트 기초3 (사용자 정의 함수)
  16. 2010/02/21 [리눅스] 쉘스크립트 기초2
  17. 2010/02/21 [리눅스] 쉘스크립트 PATH 설정
  18. 2010/02/20 [리눅스] #!bin/bash 의 의미
  19. 2010/02/20 [리눅스] 리눅스에서 사용되는 쉘의 종류
  20. 2010/02/20 [리눅스] 파일 입출력 관련 명령어
  21. 2010/02/20 [리눅스] 시스템 관련 명령어
  22. 2010/02/20 [리눅스] 기본명령어
  23. 2010/02/11 [e-TRAYz] FTP를 이용한 파일/폴더 동기화 및 백업 (1)
  24. 2010/02/09 [e-TRAYz] Internal Server Error (HTTP 오류 403 - 사용 금지)
  25. 2010/02/06 [e-TRAYz] 로그기록제어 - 특정IP 로그 남기지 않기
  26. 2010/02/03 [e-TRAYz] SMTP 설정 - GMAIL 사용고객
  27. 2010/02/03 [e-TRAYz] MySQL 관리자비밀번호 변경하기
  28. 2010/01/30 [e-TRAYz] .html .htm 파일안에서 PHP 사용하기
  29. 2010/01/25 D900/D900T/D900TW v2.4.2 (2009/10/30)
  30. 2010/01/25 E900Basic/E900DIC/E900T v2.4.2 (2009/10/30)
sysqdmin 계정 - mysql 외부접속 허용하기 

1. mysql 접속권한 수정
~# mysql -uroot -p비밀번호
mysql> use mysql;
mysql> update user set Host = '%' where User='sysadmin';
mysql> update db set Host = '%' where User='sysadmin';
mysql> flush privileges;

2. mysql 환경설정 파일 수정

~# vi /etc/mysql/my.cnf

약 69라인 주석처리
...
bind-address    = 127.0.0.1
...



...
#bind-address    = 127.0.0.1
...

3. mysql 재시작

~# /etc/init.d/mysqld restart
e-TRAYz 1.0.4 - official 펌웨어에서만 사용할 수 있습니다. (이전버젼에서 사용하지 마세요.)
                 ↑

e-TRAYz 자동패치 적용으로 발생하는 모든 문제에 대해 일체 책임지지 않습니다.
이 게시물을 외부에 복사/링크하지 마세요! 수시로 업데이트되므로 관리하기가 어렵습니다.


- SSH 접속후 명령어 몇개만으로 수분이내에, e-TRAYz를 패치해주는 유틸리티입니다.
- 그누보드, 제로보드4, XE + 텍스타일, 텍스트큐브, WordPress 한글판, Photo 이미지 태그생성기, PhpMyAdmin, Webalizer, iperf, 실시간방송녹하기를 자동으로 다운받아 설치하며 권한조절까지 지원됩니다.


1) 자동패치 내용 -
(관련문서, http://blog.whenji.com/187 주황색글씨 모두적용)

- MySQL 관리자비밀번호 변경하기
- MySQL sysadmin 계정생성
- XE 텍스타일(Textyle) 설치시 XML 전송오류해결하기
- .html .htm 파일안에서 PHP 사용하기
- Internal Server Error (HTTP 오류 403 - 사용 금지)

- mod_rewrite 적용하기
- MySQL 계정삭제
- MySQL 계정추가
- MySQL 사용자비밀번호 분실
- FTP 포트변경하기 (21번포트가 막힌경우)
- SSH 포트변경하기 (22번포트가 막힌경우)
- 로그파일에, 경로/브라우저명/호스트명/국가코드 기록하기
- ipkg 패키징 설치하기
- libdb 라이브러리 설치하기

2)
프로그램 설치유틸리티 (선택적으로 명령어 입력시 자동으로 설치되는 프로그램입니다.)

- [홈페이지][GPL라이센스]  그누보드
- [
홈페이지][독점라이센스]  제로보드4
- [
홈페이지][GPL라이센스]  XE + 텍스타일
- [
홈페이지][GPL라이센스]  텍스트큐브
- [
홈페이지][GPL라이센스]  WordPress 한글판
- [
홈페이지][독점라이센스]  Photo 이미지 태그생성기 
- [
홈페이지][GPL라이센스PhpMyAdmin
- [홈페이지][GPL라이센스Webalizer
- [홈페이지][GPL라이센스iperf
- [홈페이지][독점라이센스]  실시간 방송녹화기
- [홈페이지][독점라이센스]  파일/폴더 검색기
- [홈페이지][독점라이센스]  e-TRAYz 모니터링 (Nice e-TRAYz statistics)



설치유형에는
A형 B형이있습니다. 둘 중에 한가지만 설치하세요.

A형은 기본포트를 사용하며.
B형은 FTP와 SSH 포트를 각각 2121 2222로 변경하여 설치합니다.

즉 B형으로 설치하시면, 기본포트를 사용하지 않으므로 FTP와 SSH 접속시 별도로 포트번호를 지정해서 접속하셔야합니다. (잘 모르시면, e-TRAYz의 기본값인 A형으로 설치하세요.)

[설치전 반드시 읽어주세요!]

1) e-Trayz 에서만 사용하셔야합니다. (다른 기종에서는 절대 사용하지 마세요!)

2)
SSH 접속시 아래처럼 root 계정으로 로그인하셔야 합니다.

ID : root
PASSWORD : 관리자비밀번호

3) 아래 4개의 명령어를 정확하게 입력하세요. 대소문자 구분! 첫줄에 있는 -O 는 알파벳 대문자 O입니다.

4) 아래 명령어중, /install.sh 관리자비밀번호입력에 주의하시기바랍니다.

입력하신 관리자비밀번호가, MySQL 관리자(root)비밀번호로 변경되고, MySQL의 sysadmin 계정생성시 비밀번호로 사용됩니다. 설치시 신중히 결정하시기바랍니다.

5) A형 또는 B형으로 설치완료후, http://아이디.myetrayz.net:포트번호/phpinfo.htm 파일을 열어보세요. 등록정보가 바르게 표시되면 모든 패치가 완벽하게 설치된 것입니다.



▼ 처음설치자

A형 기본포트사용자 (FTP 21 / SSH 22)
 
wget http://whenji.com/etrayz/install/install_a.sh -O /install.sh
chmod 700 /install.sh
/install.sh 관리자비밀번호입력

rm /install.sh
 
명령어는 4개입니다. 마지막 명령어 rm /install.sh 도 잊지말고 입력하세요.



B형 기본포트를 변경하여 설치합니다. (FTP 2121 / SSH 2222)
 
wget http://whenji.com/etrayz/install/install_b.sh -O /install.sh
chmod 700 /install.sh
/install.sh 관리자비밀번호입력

rm /install.sh

명령어는 4개입니다. 마지막 명령어 rm /install.sh 도 잊지말고 입력하세요.

▼ 재설치자 (재설치모드는 MySQL 계정관련 패치는 적용하지 않습니다.)

A형 기본포트사용자 (FTP 21 / SSH 22)
 
wget http://whenji.com/etrayz/install/install_a.sh -O /install.sh
chmod 700 /install.sh
/install.sh update

rm /install.sh
 
재설치모드 작동(설치)시, e-TRAYz에서 비프음이 1회 울립니다.
명령어는 4개입니다. 마지막 명령어 rm /install.sh 도 잊지말고 입력하세요.



B형 기본포트를 변경하여 설치합니다. (FTP 2121 / SSH 2222)
 
wget http://whenji.com/etrayz/install/install_b.sh -O /install.sh
chmod 700 /install.sh
/install.sh update
rm /install.sh

재설치모드 작동(설치)시, e-TRAYz에서 비프음이 1회 울립니다.
명령어는 4개입니다. 마지막 명령어 rm /install.sh 도 잊지말고 입력하세요.



이번에는, 프로그램을 자동으로 설치하는 방법을 알려드리겠습니다.

1) 필요하실때.언제든지 아래 명령어만 입력하세요.각각의 프로그램이 WWW 폴더에 자동으로 설치됩니다.
2) 프로그램의 버젼은 호환성테스트를 거친뒤 최신버젼으로 유지합니다. (버젼에 관한 문의는 댓글로 남겨주세요.)

웹프로그램설치시, MySQL 설정관련 공통사항

① HOST(호스트명) : localhost
② 데이터베이스이름 : sysadmin
③ 접속아이디 : sysadmin
④ 접속비밀번호 : 관리자비밀번호입력

MySQL 계정추가방법은, 본 문서 하단을 참고하시기 바랍니다.

 
그누보드
 
현재버젼 : 4.32.03

설치명령어 : gnuboard4.sh
설치후 접속주소 : http://아이디.myetrayz.net:포트번호/gnuboard4/

제로보드4
 
현재버젼 : zb4pl9.utf8

설치명령어 :
zeroboard.sh
설치후 접속주소 : http://아이디.myetrayz.net:포트번호/bbs/
 
XE + 텍스타일

현재버젼(엔진) : XpressEngine Core ver. 1.4.0.7
현재버젼(텍스타일) : textyle.1.2.3 material 1.0 dreditor.1.2.3

설치명령어 :
xe.sh
설치후 접속주소1 : http://아이디.myetrayz.net:포트번호/xe/
설치후 접속주소2 : http://아이디.myetrayz.net:포트번호/xe/?module=admin

텍스트큐브
 
현재버젼 : 1.8.3.1 : Secondary Dominant (r26)

설치명령어 :
textcube.sh
설치후 접속주소 : http://아이디.myetrayz.net:포트번호/tc/

WordPress 한글판
 
현재버젼 : 2.9.2

설치명령어 :
wordpress.sh
설치후 접속주소 : http://아이디.myetrayz.net:포트번호/wordpress/

Photo - 이미지 태그생성기

현재버젼 : 실시간 미러링

설치명령어 :
photo.sh
설치후 접속주소 : http://아이디.myetrayz.net:포트번호/photo/
관리자 계정정보 : 아이디 sysadmin 비밀번호 sysadmin
- 참고 : 이미지 태그생성기
- 기본환경설정/EXIF설정/GPS설정 - 각 메뉴별 초기화버튼을 한번씩 눌러주세요.

PhpMyAdmin

현재버젼 : 3.2.5-all-languages

설치명령어 :
phpmyadmin.sh
설치후 접속주소 : http://아이디.myetrayz.net:포트번호/phpmyadmin/
관리자 계정정보 : 아이디 sysadmin 비밀번호 관리자비밀번호(=MySQL비밀번호)

Webalizer

현재버젼 : 실시간 미러링

설치명령어 :
webalizer.sh
설치후 접속주소 :
주소1
http://아이디.myetrayz.net:포트번호/webalizer/
주소2 http://아이디.myetrayz.net:포트번호/webalizer/index.php

http://아이디.myetrayz.net:포트번호/webalizer/index.html (X) 이 주소로 접속시 실시간 분석이 되지 않습니다.

iperf

현재버젼 : 실시간 미러링

설치명령어 :
iperf.sh
설치후 실행명령어 : iperf  (종료 : Ctrl+C)
참고 : iperf를 이용한 네트워크 대여폭 측정하기

lftp

현재버젼 : 실시간 미러링

설치명령어 : lftp.sh
참고 : FTP를 이용한 파일/폴더 동기화 및 백업

[e-TRAYz 전용] 실시간 방송녹화기

현재버젼 : 실시간 미러링

설치명령어 : radio.sh
설치후 접속주소 : http://아이디.myetrayz.net:포트번호/radio/
관리자 계정정보 : 아이디 sysadmin 비밀번호 sysadmin

참고 :
- 실시간 방송녹화기 설치/사용설명서
- 실시간 방송녹화기 채널정보
- 실시간 방송녹화기 예약녹화


[e-TRAYz 전용] 파일/폴더 검색기

현재버젼 : 실시간 미러링

설치명령어 :
find.sh
설치후 접속주소 : http://아이디.myetrayz.net:포트번호/find/
관리자 계정정보 : 아이디 sysadmin 비밀번호 sysadmin

참고 : 파일/폴더검색기

e-TRAYz 모니터링 (Nice e-TRAYz statistics)

현재버젼 : v1.3.0

설치명령어 :
sysinfo.sh
설치후 접속주소 : http://아이디.myetrayz.net:포트번호/sysinfo/

참고 : e-TRAYz 모니터링



[설치후 MySQL 관리명령어를 사용하실 수 있습니다.]

설치후 아래와 같이 MySQL 관리용 명령어(쉘스크립트)가 추가되며, SSH 내에서 사용할 수 있습니다.

mysql_add.sh

mysql_del.sh
mysql_pw.sh

[사용예]
MySQL 계정추가 : mysql_add.sh
신규ID 비밀번호
MySQL 계정삭제 : mysql_del.sh 삭제할ID
MySQL 계정비번호분실 : mysql_pw.sh 변경할계정ID 새로운비밀번호
TAG e-TRAYz
단순백업

~# mysqldump 데이터베이스명 -u root -p패스워드 > backup.sql

~# mysqldump --all-databases -u root -p패스워드 > backup.sql


사용자별 백업

계정명을 가져옴
echo "show databases" | mysql -u root -pshell | grep -v Database`

활용예

#!/bin/bash
to_dir="/home/sysadmin/"
today=`date +%Y%m%d`
tmp_dir="${to_dir}${today}/"
A=`echo "show databases" | mysql -u root -p패스워드 | grep -v Database`
mkdir ${tmp_dir}
for i in `echo $A`
do
    mysqldump ${i} -u root -p패스워드 > ${tmp_dir}${i}.sql
done
tar cfz ${to_dir}${today}MySQL.tar.gz ${tmp_dir} 2>/dev/null
rm -rf $tmp_dir
단순백업

#!/bin/bash

from_dir="/home/sysadmin/WWW"   백업할디렉토리
to_dir="/home/sysadmin"   백업받을디렉토리

today=`date +%Y%m%d`   백업파일명을 날짜로 사용
to_file=${today}.tar.gz
tar cvfz ${to_dir}${to_file} ${from_dir}
split -b 650m ${to_dir}${to_file} ${to_dir}${today}   파일을 650메가씩 분할
rm -f ${to_dir}${to_file}



변경된 부분만 백업 (tar -N 옵션 사용)

(예) 2010년 01월 01일 이후 변경된 파일들만 백업
tar cvfz backup.tar.gz -N 20100101 /경로

활용예

#!/bin/bash

from_dir="/home/sysadmin/WWW"   백업할디렉토리
to_dir="/home/sysadmin"   백업받을디렉토리

today=`date +%Y%m%d`   백업파일명을 날짜로 사용
to_file=${today}.tar.gz
tar cvfz ${to_dir}${to_file} -N `cat ./last_date` ${from_dir}   이전 작업시 저장된백업날짜를 호출
split -b 650m ${to_dir}${to_file} ${to_dir}${today}   파일을 650메가씩 분할
rm -f ${to_dir}${to_file}   백업날짜를 저장


사용별 백업

/etc/passwd 파일에서, 사용자(UID 500이상)의 계정명과 홈디렉토리 위치를 가져옴
cat /etc/passwd | sed -e 's/::/:imsy:/g' | sed -e 's/ //g' | sed -e 's/:/ /g' | awk '$3 >= 500 {print $1,$6}'

활용예

#!/bin/bash
to_dir="/home/sysadmin"   백업받을디렉토리

cat /etc/passwd | sed -e 's/::/:imsy:/g' | sed -e 's/ //g' | sed -e 's/:/ /g' | awk '$3 >= 500 {print $1,$6}' > "$tmpfile"
today=`date +%Y%m%d`   백업파일명을 날짜로 사용
to_file=${today}.tar.gz

from_dir=`awk '{print $2}' "$tmpfile"`   백업할디렉토리

for i in `echo "$from_dir"`
do
    account=`grep "$i" "$tmpfile" | awk '{print $1}'`
    tar cfz ${to_dir}${account}${to_file} ${i} 2>/dev/null
    split -b 650m ${to_dir}${account}${to_file} ${to_dir}${account}${today}   파일을 650메가씩 분할
    rm -f ${to_dir}${account}${to_file}
done
rm -f "$tmpfile"



① 금년도 현재 "월" 출력

~# cal




② 지정년도 지정월 출력


~# cal 5 1982




③ 지정년도 전체 출력

~# cal 2010

(1.0.4 펌웨어) 클라이언트에서 디렉토리명으로 접근시 index.htm 파일은 반환을 하지않습니다. 즉, index.htm 파일을 사용하는 웹서버에 접근시 명시적으로 파일명을 기제하지 않으면, Internal Server Error 가 발생하게 됩니다.
DirectoryIndex 설정부분에 index.htm 파일을 추가하여, Internal Server Error를 방지합니다.


1. Apache 환경설정 파일을 수정합니다.

~# vi /etc/apache2/modules.d/00_default_settings.conf


2. 아래라인을 수정합니다.
[ 약 105라인 부근]

...
DirectoryIndex index.html index.html.var

 ↓  위의 라인을, 아래처럼 index.htm index.php3 를 추가한뒤 저장하세요.

DirectoryIndex index.html index.html.var index.htm
...


3. Apache 데몬을 재시작 합니다.

~# service apache restart
접속 로그파일(/var/log/apache2/access_log)에, 아래의 내용을 추가로 기록할 수 있도록 설정합니다.

 접속경로  Referer
 접속 브라우저명  User-Agent
 호스트명  Host
 접속자 국가코드  GEOIP_COUNTRY_CODE


1. Apache 환경설정 파일을 수정합니다.

~# vi /etc/apache2/modules.d/00_mod_log_config.conf


2. 아래위치에
LogFormat 을 변경합니다. [ 약 4~5라인 부근]

...
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

 ↓  위의 라인을, 아래처럼 수정한 뒤 저장하세요.

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Host}i\" \"%{GEOIP_COUNTRY_CODE}e\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" combined
...


3. 아래위치에 CustomLog 설정을 변경합니다. [ 약 23라인 부근]

...
    CustomLog /var/log/apache2/access_log common

 ↓  위의 라인을, 아래처럼 수정한 뒤 저장하세요.

    CustomLog /var/log/apache2/access_log combined

...


4. Apache 데몬을 재시작 합니다.

~# service apache restart

1. Apache 환경설정 파일을 수정합니다.

~# vi /etc/apache2/modules.d/00_default_settings.conf

2. 아래위치에 AllowOverride None 을 ALL로 수정합니다. [약 90라인 부근]

...
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
...
 ↓  아래처럼, None을 지우고 ALL로 수정한 뒤 저장하세요.
...
<Directory />
    Options FollowSymLinks
    AllowOverride ALL
    Order deny,allow
    Deny from all
</Directory>
...

3. Apache 데몬을 재시작 합니다.

~# service apache restart
2010.02.23 - 펌웨어 e-TRAYz 1.0.4 - official 버젼 릴리즈

▼ 해외포럼에 펌웨어 1.0.4 버젼이 릴리즈되었습니다.
바로가기


▼ 해외포럼 미러링

업그레이드 : etrayz_1.0.4-official_fwupgrade_100212.bin

전체설치버젼 : etrayz_1.0.4-official/etrayz_1.0.4-official_installer.zip






이 프로그램에 관한 저작권은 아래 개발자에게 있습니다.
 

웹페이지에서, e-TRAYz의 실시간정보를 확인할 수 있는 프로그램입니다.

① CPU STATS
② UPTIME INFO
③ RAM INFO
④ STORAGE INFO
⑤ HDD SLOT A
⑥ HDD SLOT B
⑦ System Processes



설치방법

2010.02.21 자동설치 프로그램에 포함되었습니다.
자동설치  : http://blog.whenji.com/229



1. 아래 쉘스크립트 다운받아 e-TRAYz에 업로드합니다.


2. 실행권한을 조절합니다.

~# chmod 700 ./sysinfo.sh

3. 쉘스크립트를 실행합니다. (프로그램 설치가 진행됩니다.)

~# ./sysinfo.sh

4. 설치가 완료되면, 쉘스크립트는 삭제해도 좋습니다.

~# rm ./sysinfo.sh

5. 웹페이지에서, e-TRAYz의 실시간정보를 확인할 수 있습니다.



 
실행화면


쉘스크립트 - FTP 파일송수신 예제
#!/bin/bash

URL="서버주소"
ID="아이디"
PASS="비밀번호"
DIR="/"
FILE="파일이름"
echo "open $URL
user $ID $PASS
cd $DIR
tick
get $FILE
quit" > temp.tmp
ftp -n < temp.tmp
rm -f temp.tmp


# 서버주소입력 (예) whenji.com
# 계정아이디입력
# 계정비밀번호입력
# 파일이있는 경로입력
# 파일이름입력





# tick : 파일전송시 실시간으로 용량표시
# get : 파일다운로드 명령어 / put 명령어로 파일을 업로드할 수 있다.


# -n : 자동로그인 활성화 옵션
 

사용자 정의 함수 대입변수는 argument 방법과 동일 ($1 $2 $3 ...)
함수명()
{
        .................
}
예제




gugudan()
{
  num=$1
  i=1
  while [ $i -lt 10 ]
  do
    answer=`expr $num \* $i`
    echo "$num X $i = $answer"
    i=`expr $i + 1`
  done
}

gugudan 2
gugudan 3
 
크기비교 [공백 공백] 주의
[ $A -gt $B ]
[ $A -lt $B ]
[ $A -ge $B ]
[ $A -le $B ]
[ $A -eq $B ]
[ $A -ne $B ]
A값이 B값보다 크다.
A값이 B값보다 작다.
A값이 B값보다 크거나 같다.
A값이 B값보다 작거나 같다.
A값과 B값이 같다.
A값과 B값이 다르다.

expr


연산
= 양쪽에 공백이 없어야 합니다.
각 연산자와 숫자, 변수 사이에는 Space가 있어야 합니다.
곱하기*, 괄호(){} 기호는 역슬레시와 같이 사용해야 합니다.
+
-
*
/
%
더하기
빼기
곱하기
나누기를 한 후의 몫의 값
나누기를 한 후의 나머지 값
예제
num=`expr $num1 + 1`
num=`expr $num + \( 2 \* 5 \) / 1 + 1`

문자열비교 [공백 공백] 주의
[ "A" = "B" ]
[ "A" != "B" ]
[ -z "A" ]
[ -n "A" ]
두 문자열이 같은 경우
두 문자열이 다른 경우
문자열의 길이가 0인 경우
문자열의 길이가 0이 아닌 경우

파일다루기 [공백 공백] 주의
[ -f 파일명 ]
[ -s 파일명 ]
[ -d 파일명 ]
[ -r 파일명 ]
[ -w 파일명 ]
[ -x 파일명 ]
[ ! -옵션 파일명 ]
파일이 있는 경우
파일이 존재하고 내용이 있는 경우
파일이 아니고 디렉토리인 경우
읽기가 가능한 파일인 경우
쓰기가 가능한 파일인 경우
파일이 존재하고 실행 가능한 경우
옵션의 조건이 아닐 경우
예제


if [ -s $filename ]
then
      tail $filename
fi

조건문
if [ 조건문 ]
then
        .................
elif [ 조건문 ]
then
        .................
else
        .................
fi

관계연산자 [공백 공백] 주의
-a
-o
and
or
예제


if [ 조건문 -o 조건문 ]
then
      tail $filename
fi

for 일반적인 for 문과 다름
for 변수명 in 변수값1 변수값2 변수값3
do
        .................
done
예제


for fruit in apple banana grape
do
    echo $fruit
done

while [공백 공백] 주의
while [ 조건문 ]
do
        .................
done
예제






num=9
i=1
while [ $i -lt 10 ]
do
  answer=`expr $num \* $i`
  echo "$num X $i = $answer"
  i=`expr $i + 1`
done

until
while문과는 반대로 조건문이 거짓이면 실행, 참이면 반복을 중지
[공백 공백] 주의
until [ 조건문 ]
do
        .................
done
예제






num=9
i=1
until [ $i -gt 10 ]
do
  answer=`expr $num \* $i`
  echo "$num X $i = $answer"
  i=`expr $i + 1`
done

case 패턴의 각 실행문의 끝은, ;;를 사용합니다.
| 를 사용하여 여러개의 패턴을 사용할 수 있습니다.
case 변수 in
패턴1)
        .................
        ;;
패턴2)
        .................
        ;;
*)
        .................
        ;;
esac
예제












A=a
case "$A" in
a|A)
  echo "a or A."
  exit
  ;;
b|B)
  echo "b or B."
  exit
  ;;
*)
  echo "(a, A, b, B ) not."
  exit
  ;;
esac

continue  조건문으로 돌아감 

beak  반복문을 강제로 종료
현재 지정된 PATH 경로 보기

~# echo$PATH

PATH 지정하기

각 계정 디렉토리의 .bash_profile 에서 지정

쉘스크립트의 첫 라인에 #!/bin/bash 를 기제하는 이유

쉘스크립트 작성시, 가장 첫 라인에 #!/bin/bash 를 기제하는 이유는, 스크립트 파일이 bash 쉘로 실행시킨다는 의미입니다. 같은 원리로 tcsh 쉘로 실행시키려면, 첫라인은 #!/bin/tcsh 로 시작해야 합니다.

!/bin/bash 를 기제를 하지 않아도 실행된다면, 이는 리눅스 배포판은 기본적으로 bash 쉘로 설정되어있어서 동일한 bash 쉘상에서 무리없이 작동되는 경우입니다. !/bain/bash 를 지정해서, bash 쉘 파일임을 미리 알려주는 것이 다른 쉘간의 오류를 방지하는 방법입니다.

(참고)
쉘스크립트에서 #는 주석기호이지만, 첫라인의 #!/bin/bash 에서의 #은 주석기호가 아니라는 점..

bash 와 sh 를 혼용해도 될까요?

결론적으로 모두 같은 의미입니다.
#!/bin/bash
#!/bin/sh

SSH / Telnet 상에서 아래 명령어를 입력해보세요.
ls -al /bin/sh

실행결과 : /bin/sh -> bash

즉, sh 가 bash 의 심볼릭링크로 설정되어있으므로, 서로 혼용해서 사용해도 된다는 의미입니다.

쉘은 커널(Kernel)과 사용자(USER) 사이를 이어주는 일종의 유틸리티입니다.
쉘의 종류는 여러가지가 있고, 대부분의 리눅스 배포판에서는 배시(bash)쉘을 기본으로 사용하고 있습니다.

쉘(Shell)의 종류

① Bourne Shall (sh)
② C Shell (csh)
③ Korn Shell (ksh)
Bourne Agine Shell (bash)
⑤ TC Shall (tcsh)


사용하고 있는 쉘을 확인하려면

~# echo $SHELL


사용할 수 있는 쉘(리눅스에 설치되어진 쉘)을 확인하려면

~# cat /etc/shells


로그인시 기본쉘을 지정하려면..

~# vi/etc/passwd

USBR 마지막부분에, /bin/sh (또는 /bin/bash) 부분이 기본쉘로 지정된 부분입니다.
이부분을, /bin/tcsh로 변경하면, 다음 로그인부터는 TC Shell을 기본쉘로 사용하게 됩니다.
cat [옵션] 파일내용출력
-n 라인번호 출력

cat [옵션] > 파일이름 새로운 파일생성
-n 라인번호 출력
Ctrl + D 종료

head [옵션] 파일이름 파일의 처음부분 출력
-라인수
-n라인수
앞에서부터 라인수만큼 출력
상동

tail [옵션] 파일이름 파일의 끝부분 출력
옵션미지정시 기본값
-라인수
+라인수
-f
응용
3번라인~15번라인
파일의 끝에서부터 10라인 출력
파일의 끝에서부터 라인수만큼 출력
파일의 처음 라인수 부분부터 끝까지 출력
파일의 끝부분에 추가되는 부분을 계속해서 표시 (시스템 로그파일 실시간 감시 등)

tail +3 파일명 | head -15

cut [옵션] 파일이름 특정 필드 추출
-c
-d 구분자
-f 구분자
문자수로 열을 계산해서 출력
필드 구분자를 사용
파일 내의 필드로 따져서 추출
응용 cut -d : -f 1,3-4 /etc/passwd (필드구분자: 첫번째필드와, 세번째부터 네번째필드 출력)
cut -d : -f 1,3-4 /etc/passwd | tail -5 (상동 마지막5개출력)

paste [옵션] 파일이름 파일이름 여러파일의 내용을 하나로 합쳐서 출력
-s
-d
각 파일의 내용을 한 줄로 출력
출력되는 내용의 구분자를 지정

diff [옵션] 파일이름 파일이름 파일의 내용 비교 후, 다른 부분을 출력
-b
-q
Space는 무시하고 비교
파일이 서로 다른 경우, 출력은 하지 않고 다르다는 메시지만 출력

clear
Ctrl + l
화면을 깨씃이 지움

grep [옵션] [패턴] 파일이름 특정 단어나 문장등을 검색 (파일이름에 * 가능)
-v
-i
-n
l
패턴을 포함하지 않는 행을 출력
대소문자를 구분하지 않음
라인번호를 출력
파일명을 출력
패턴형식
[abcd]
[a-c]
[0-9]
'^d'
'문자열$'
 
a 또는 b 또는 c 또는 d가 있는 라인
상동
0 또는 1 또는 ... 9가 있는 라인
서브리렉토리 출력 (예 ls -l /home | grep '^d')
문자열로 끝나는 파일 또는 디렉토리 출력  (예 ls -l /home | grep 'c$')

sort [옵션] 파일이름 파일에서 필드를 추출하고 정렬
옵션미지정시 기본값
-f
-r
-b
-k
-t 구분자
-n
첫번째 필드를 기준으로 오름차순정렬
대소문자를 구분하지 않음
내림차순정렬
Space는 무시
정렬의 기준이 되는 필드를 지정
필드 구분자로, 구분자를 지정
숫자 순서로 정렬
응용


☞ 필드구분자: 세번째필드를기준으로, 숫자를 내림차순으로 정렬
sort -t : -k3 -n -r /etc/passwd 
☞ 필드구분자: 세번째필드를기준으로, 숫자를 내림차순으로 정렬 + 상위 10라인 출력
sort -t : -k3 -n -r /etc/passwd | head

sed [옵션] 파일이름 파일의 문자열을 입력/수정
p
d
^
$
-f
's/가/나/g'
-n 's/가/나/gp'
-e

-q
원하는 내용을 출력 (-n 옵션과 같이 사용할 경우, 선택된 행만 출력)
선택한 행을 삭제 ('1,3d' 1번라인부터 3번라인까지 삭제하고 출력)
첫 라인을 의미 (sed 's/^$/빈문서입니다/g' 파일명)
마지막 라인을 의미 ('10,$d' 10라인부터 파일 끝까지 삭제하고, 출력)
파일 안의 내용일 실행
'가' 문자열을 '나' 문자열로 대체 (단어만 변경하려면, <> 로 묶어줌)
상동 + 변경된 라이만 출력
다중편집(명령어 중복사용)
sed -e 's/가/나/g' -e 's/다/라/g' 파일명
종료 ('10q' 10라인까지 출력후 종료)

awk  특정 패턴의 조작/검색 (전문문서참조)
id 사용자 정보출력

who (= 간단한정보)  w (= 작업내용) 현재 접속자 출력 파일의 리스트(list)를 출력 

df [옵션] 하드디스크의 사용정보출력 
i
k
m
h
T
inode로 디스크 정보출력
KB 단위로 출력
MB 단위로 출력
파일을 보기쉬운 용량으로 출력
파일시스템의 정보를 출력

du [옵션] [디렉토리] 하드디스크/디렉토리의 사용용량출력
k
m
h
s
KB 단위로 출력
MB 단위로 출력
파일을 보기쉬운 용랴으로 출력
하위디렉토리까지 계산하여 출력

ps [옵션] 실행중인 프로세스 출력 (예 ps aux | grep sshd)
a
u
x
l
다른사요자의 프로세스포함
실행시킨 유저와 시간을 출력
터미널의 제어없이 프로세스의 상태출력
상세정보 출력
STAT
R
S
Z
D
T
 
Running - 프로세스가 실행되고 있는 상태
Sleeping - 실행을 잠시 쉬고 있는 상태
Zombie - 완전히 죽어있는 상태
Disk wait - 인터럽트가 죽어있는 상태
Traced or stopped - 프로세스의 실행이 정지되어 흔적만 남아있는 상태

kill -시그널번호 PID 프로세스 강제종료
-l
-1
-9
시그널 목록출력
프로세스 재실행
프로세스 강제종료

top 실행중인 프로세스들의 CPU사용량, 메모리사용량을 출력 (5초단위 갱신)
Space
h
r
s
M
P
q
화면갱신
도움말 출력
Nice 값 변경
화면 갱신 시간설정 (초단위/기본값:5초)
메모리 사용량 순서로 정렬
CPU 사용량 순서로 정렬 (기본값)
종료
PID
USER
PR
NI
VIRT
RES
SHR
S
%CPU
%MEM
TIME+
COMMAND
프로세스 ID
프로세스 소유자(실행자)
Priority. 우선순위
Nice 값 (-20~-19사이의 값으로, 작을수록 우선순위가 높음)
프로세스의 코드와 데이터의 크기 (KB단위)
프로세스가 사용주인 실제 메모리의 양
프로세스가 사용중인 공유 메모리의 양
프로세스의 상태
CPU 사용량
메모리 사용량
프로세스가 실행되고 있는 시간
프로세스를 실행한 명령어

sleep 시간 시간지연
10분
10시간
10일
10m
10h
10d

chkconfig
chkconfig --list 데몬이름
chkconfig --list | grep 이름
chkconfig --level 런레벨번호 데몬이름 on/off
부팅시 데몬자동실행 설정


렌레벨 3=on : 부팅시 자동실행
예. chkconfig --level 345 sendmail on
-p
-r
원본정보(소유권등)를 그대로 복사안의 모든 파일을 복사

crontab [옵션] 예약작업관리
-e
-l
-r
예약작업 내용을 입력
예약된 작업 목록출력
예약작업 내용을 삭제

telnet 서버주소 [포트번호] 다른시스템의 telnet 접속

ftp 서버주소 [포트번호] 다른시스템의 ftp 접속
?
ascii 또는 as
binary 또는 bi

cd
delete

ls
lcd

mget
get 파일명
put 파일명

hash
bye
사용가능한 명령어 출력
파일 전송타입을 ascii타입으로 전환
파일 전송타입을 binary타입으로 전환

디렉토리 이동
파일삭제

파일 및 디렉토리 리스트 출력
현재 시스템의 디렉토리 출력

파일 다운로드 (디렉토리 모든파일 다운로드 = 와일드문자 * 사용가능)
파일 다운 (파일명에 공백이 있으면 ""를 사용할 것) 
파일 업로드 (파일명에 공백이 있으면 ""를 사용할 것)

전송과정을 해쉬문자(#)로 보여줌
접속종료
pwd  현재 경로 표시 

ls  파일의 리스트(list)를 출력 
-a --all
-c
-i
-l
-t
모든 파일 보기
파일을 최근 변경 시간으로 정렬
파일의 inode값 보이기
퍼미션, 크기, 사이즈 등의 자세한 정보 보기
최근 파일로부터 정렬하여 출력

cd 디렉토리 변경 
~
-
..
홈디렉토리로 이동
1단계 전의 디렉토리로 이동
상위 디렉토리로 이동

mkdir / rmdir 디렉토리생성 / 디렉토리삭제
-p
하위 디렉토리까지 한번에 생성 / 삭제

touch 새로운 파일생성

cp [옵션] 원본파일명 복사할디렉토리 파일복사
-p
-r
원본정보(소유권등)를 그대로 복사
하위디렉토리 안의 모든 파일을 복사

mv [옵션] 원본파일명 대상디렉토리(또는 파일명) 파일이동 또는 이름변경
-f
대상 파일이 있는 경우, 강제로 닾어쓰기

rm [옵션] 파일명 파일삭제
-r
-f
하위 디렉토리 및 파일들을 모두 삭제
묻지 않고, 강제로 삭제

find 디렉토리 [옵션] 파일명 파일검색
-name [패턴]
-amin ○
-atime ○
-cmin ○
-ctime ○
패턴 형식으로 되어있는 파일
○분전에 최종 접근된 파일
○일 전에 최종 접근된 파일
○분전에 최종 변경된 파일
○일전에 최종 변경된 파일

split [옵션] 분할할파일명 생성될파일명 파일분할
-b
-l
파일을 byte 단위로 분할 (예 split -b 500mb 분할할파일명 생성될파일명)
파일을 지정한 라인수 단위로 분할 (미지정시 1000라인단위)

wc [옵션] 파일명 파일 내의 문자/라인/단어단어 수 출력
-c
-l
-w
젠체 문자의 수 출력
전체 라인의 수 출력
전체 단어의 수 출력

date [옵션] [+포맷] 날짜/시간출력

%
"-"
_

%a
%A
%b
%B
%c
%d
%D
%e
%h
%H
%I
%j
%k
%l
%m
%M
%p
%r
%s
%S
%T
%U
%V
%W
%w
%x
%X
%y
%Y

문자 그 자체를 의미합니다.
필드를 채우지 않는다. ( 기본적으로 0으로 채운다 )
필드를 공백으로 채운다.
약식 요일 이름 (Sun...Sat)
환전한 요일 표현 (Sunday....Saturday)
약식 월 이름 (Jan...Dec)
완전한 월을 표현 (January......December)
날짜와 시간 ([요일] [day] [Month] [Years] [hh:mm:ss] [오전or오후]
월 기준 일 (01....31)
%M/%D/%Y 날짜 표현식
그 달의 날짜
%b 와 같은 의미입니다.
24시간 표현형식 (00...23)
12시간 표현형식 (01....12)
년기준일- (001...365)
24시간 기준 (1.....12)
12시간 표현형식 (1....12)
년 기준 월 (01....12)
분 표현 (00.....59)
AM or PM
12시간 표현형식 (hh:mm:ss[AM | PM]
1970-01-01 00:00:00 부터 경과된 초
초 표현 (00......59)
%h:%m:%s 형태의 시간표현
년 기준 주일의 숫자 (일요일을 주일의 시작, 00.....53)
년 기준 주일의 숫자 (월요일을 주일의 시작, 01.....52)
년 기준 주일의 숫자 (월요일을 주일의 시작, 00.....53)
요일의 숫자 ( 일요일은 0 )
로케일의 날짜 표현식 (mm/dd/yy)
정의한 시간의 표현 ( %h:%m:%s )
년 표현의 뒷 2자리 (00-99)
년 표현의 네 자리 숫자 ( 예 : 2002 )

chown / chgrp 파일/디렉토리의 소유자/소유그룹변경
-R
하위 디렉토리 및 파일들도 모두 변경

chmod 권한(퍼미션)설정
-R
하위 디렉토리 및 파일들도 모두 변경

e-TRAYz 와 원격FTP서버의 특정 디렉토리를 상호동기화 시키는 방법입니다.
예를들어, 서버이전, 웹호스팅 계정백업, 또 다른 NAS(넷토리지 등)와 데이터를 동기화 시킬때 유용하게 사용할 수 있습니다.



lftp 프로그램 설치하기
 
[잠깐!] 아래 프로그램이 e-TRAYz에 먼저 설치되어 있어야합니다. (☞ 자동설치시 이미 설치됨)

 ipkg 패키징 설치하기

 
~# /opt/bin/ipkg install lftp



명령어
 
① 다운로드 (원격디렉토리 ☞ 다운로드 ☞ 로컬디렉토리)

/opt/lftp -c 'open -e "mirror /원격디렉토리 /로컬디렉토리" ftp://아이디:비밀번호@서버주소'

서버에서 파일이 삭제된 경우 → 로컬파일도 삭제

/opt/lftp -c 'open -e "mirror -e /원격디렉토리 /로컬디렉토리" ftp://아이디:비밀번호@서버주소'



② 업로드 (원격디렉토리 ☜ 업로드 ☜ 로컬디렉토리)

/opt/lftp -c 'open -e "mirror -R /로컬디렉토리 /원격디렉토리" ftp://아이디:비밀번호@서버주소'

로컬에서 파일이 삭제된 경우 → 서버파일도 삭제

/opt/lftp -c 'open -e "mirror -R -e /로컬디렉토리 /원격디렉토리" ftp://아이디:비밀번호@서버주소'



FAQ

 
Q. 파일전송이 완료될때까지, SSH접속을 유지해야 되니요?
A. 백그라운드에서 프로그램을 실행시키면, SSH종료후에도 다운이 완료될때까지 작동됩니다.

명령어 맨 뒤에 & 를 입력하면, 백그라운드에서 프로그램이 실행됩니다.

(예)

/opt/lftp -c 'open -e "mirror /원격디렉토리 /로컬디렉토리" ftp
://아이디:비밀번호@서버주소' &



Q. 한글파일(폴더)이 깨지거나, 접근할 수 없습니다.
A. e-TRATz의 언어셋(UTF-8)과, 접속하는 원격서버의 언어셋이 다른경우(예, euc-kr) 한글파일이 깨질 수 있습니다. lftp 환경설정파일에 언어셋을 설정해 주면, 자동으로 변환처리됩니다.

~# vi /opt/etc/lftp.conf

[문서하단에 아래 2줄 추가]

set file:charset utf-8
set ftp:charset euc-kr



Q. 업로드 다운로드 속도를 제한 시킬 수 있나요?
A. lftp 환경설정파일에서 업로드,다운로드 속도를 제한 시킬 수 있습니다.

~# vi /opt/etc/lftp.conf

[문서하단에 설정추가]

set net:limit-rate down:up (0은 무제한)

(예) 다운로드속도를 1MBytes/s 로 제한하기
 set net:limit-rate 1048576:0


 
(1.0.3 펌웨어) 클라이언트에서 디렉토리명으로 접근시 index.htm 파일은 반환을 하지않습니다. 즉, index.htm 파일을 사용하는 웹서버에 접근시 명시적으로 파일명을 기제하지 않으면, Internal Server Error 가 발생하게 됩니다.
DirectoryIndex 설정부분에 index.htm 파일을 추가하여, Internal Server Error를 방지합니다.


1. Apache 환경설정 파일을 수정합니다.

~# vi /etc/apache2/httpd.conf


2. 아래라인을 수정합니다.
[ 약 288라인 부근]

...
DirectoryIndex index.php index.phtml index.html index.html.var

 ↓  위의 라인을, 아래처럼 index.htm index.php3 를 추가한뒤 저장하세요.

DirectoryIndex index.php index.phtml index.html index.html.var index.htm index.php3
...


3. Apache 데몬을 재시작 합니다.

~# service apache restart
Apache 환경설정파일을 수정하여, 로그파일을 기록하거나 기록하지 않도록 설정합니다.

1. Apache 환경설정 파일을 수정합니다.

~# vi /etc/apache2/httpd.conf


2. Log기록 설정관련부분을 수정합니다.
[ 약 515라인 부근]

...
<IfModule mod_setenvif.c>
    SetEnvIf Request_URI \.gif dontlog                     ☜ gif 파일접근시 로그기록안함
    SetEnvIf Request_URI \.jpg dontlog                    ☜ jpg 파일접근시 로그기록안함
    SetEnvIf Request_URI \.png dontlog                   ☜ png 파일접근시 로그기록안함
    SetEnvIf Request_URI \.css dontlog                   ☜ css 파일접근시 로그기록안함
    SetEnvIf Request_URI \.js  dontlog                     ☜ js 파일접근시 로그기록안함
 SetEnvIf Request_URI "^/favicon.ico$" dontlog
 SetEnvIf Request_URI "^/robots.txt$" dontlog
 SetEnvIf Remote_Addr "127.0.0.1" dontlog
 SetEnvIf Remote_Addr "192.168.*.*" dontlog             가상 IP(192.168 로 시작되는 모든IP) 기록안함
</IfModule>
...


3. Apache 데몬을 재시작 합니다.

~# service apache restart
1. GMAIL (http://mail.google.com) 에 가입합니다.

2. SMTP 정보를 입력합니다.

 설정관리 - 시스템 - 메일(SMTP)

                                                                                          ↓ GMAIL을 선택합니다.

 보내는 메일서버(SMTP)  smtp.gmail.com
 메일 아이디(계정이름)  GMAIL 아이디
 메일 비밀번호  GMAIL 비밀번호

3. 테스트메일보내기를 클릭한뒤, 메일이 정상적으로 발송되었는지 확인해보세요.

MySQL 관리자(root) 비밀번호가, sysadmin 으로 모두 동일합니다. 꼭 비밀번호를 변경하세요.

2. 실행권한을 조절합니다.

mysqladmin -p -u root password '새로운비밀번호'
이전비밀번호입력(기본값 sysadmin)

(예) root계정의 암호를 123456으로 바꾸려면

mysqladmin -p -u root password '123456'
명령어 입력후 패스워드 입력칸에, 이전비밀번호인 sysadmin 을 입력합니다.
TAG e-TRAYz, MYSQL

1. Apache 환경설정 파일을 수정합니다.

~# vi /etc/apache2/httpd.conf

2. 문서하단에 AddType application/x-httpd-php .php .html .htm .php3 .inc .phtml 을 추가합니다.

AddType application/x-httpd-php .php .html .htm .php3 .inc .phtml

3. Apache 데몬을 재시작 합니다.

~# service apache restart

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.