리눅스 정리 5일차
1. 프로세스 nohup
부모 프로세스가 죽거나 종료되더라도 자식 프로세스는 계속 동작할수 있도록
백그라운드 모드에서 프로세스가 실행되도록 하는 명령이다
nohup.out 정보가 기록된다.
find / -name *.out
2.우선순위 예약(nice)
프로세스들을 실행하는데 프로세스에게 실행 우선권을 부여할 수 있다.
nice -n명령의 형식으로 실행한다.
우선순위는 -20 ~ +19까지의 범위를 갖는다.
값이 작을수록 우선순위가 높아지고 기본값은 10이다.
top &
nice --15 vi &
3.데몬관리(ntsysv)
부트 스크립트를 관리해주는 도구이다.
부트 스크립트의 부팅이 시작될 때 자동 실행여부를 쉽게 설정하거나 해제할 수 있도록 도와주는 도구이다.
ntsysv => 현재 구동중인 레벨의 서비스 데몬을 설정한다.
ntsysv --level 5 => 실행 레벨 5의 서비스 데몬을 설정한다.
--level 실행 레벨:특정 실행 레벨을 편집한다.
이 파일들은 /etc/rc.d/init.d 디렉토리에 스크립트 형태로 저장되어 있다.
4.chkconfig
이 명령어는 서비스 데몬의 실행 레벨 정보를 관리해주는 프로그램이다.
사용법
chkconfig --list 데몬명 =>각 실행 레벨에서의 서비스 설정 상태를 보여준다.
chkconfig --add 데몬명 => 서비스를 추가한다.
chkconfig --del 데몬명 => 서비스를 삭제한다.
chkconfig --level 레벨번호 데몬명 on/off/reset => 해당 레벨에서 특정서비스의 상태를 설정한다.
chkconfig --level 35 named on
=>실행 레벨 3,5에 대해서 named 서비스를 on한다.
chkconfig sendmail off
=>sendmail 서비스를 부팅 시에 시작하지 않는다.
특별히 레벨을 명기하지 않으면 2,3,4,5 레벨이 on/off된다.
---------------------------------------------------------------------------------
예약(at, cron)
1.at
지정한 시간에 특정 작업이 실행될 수 있도록 작업스케쥴을 예약 처리해주는 기능.
보통 한번 실행되는 경우에 주로 사용된다. atd 데몬에 의하여 실행되고, 지정한 큐(queue)에 저장되며
저장된 작업들은 /var/spool/at 디렉터리 아래 파일로 저장된다.
명령은 기본적으로 표준 입력 장치를 통해 받으며, 원하는 명령을 순차적으로 입력한 후에 ctrl+d를 누르면 된다.
*atd 데몬동작
service atd restart
사용법
at 시간 용일
at>audfuddj
at>CTRL+D키로 명령완성 선언
확인 at -l, atq
삭제 atrm
실습] 1./dev/sdd1을 2분후에 마운트하고, 5분후에 마운트해제하시오.
2./dev/sdd1 파일 1, 2, 3, 4, 5 생성하기
실습] /home 디렉토리에 있는 모든 계정 정보를 /backup/user.tar.gz으로 2분후에 백업하시오.
실습]3분후에 시스템을 재부팅하시오
실습] at 명령어를 root, tel2 계정만 사용할 수 있도록 설정하시오.
=> /etc/at.allow파일이과 /etc/at.deny 파일로 사용자 제한
2.cron:같은 작업을 주기적으로 반복 실행되도록 하는 작업스캐쥴용 도구이다.
시스템 운영에 필요한 작업은 root 권한으로 /etc/crontab에 등록해서 주기적으로 수행할 수 있고
사용자는 crontab이라는 명령을 수행해서 등록할 수 있다.
/etc 디렉토리 아래에 시, 일, 주, 월, 요일 단위형태로 cron 디렉토리가 존재한다.
이 디렉토리내에는 작업 스크립트들이 들어 있다.
*사용법
crontab -u usernamed 파일
crontab -u usernamed -e, -r, -l 형태로 사용
crontab -e 예약설정
crontab -r 예약취소
crontab -l 예약확인
-------------------------------------------------------------------------------------------------------------
분(minute) 시(hour) 날 월 요일 user-name command
0~59 0~23 1~31 1~12 0~7 사용자 이름 실행할 명령어를
'*'-all
'-' 연결된 설정 값을 지정할 때
',' 연결되지 않는 값을 나열할 때
'/' 연결된 설정 값 범위에서 특정 주기로 나눌 때 사용한다.
crontab
옵션 -l:crontab에 설정된 내용을 출력한다.
-e:내용을 작성하거나 수정한다.
-r:crontab의 내용을 삭제한다.
-u:root 사용자가 특정 사용자의 crontab 파일을 다룰 때 사용한다.
-cron 사용자 제한
/etc/cron.allow 파일이 존재하는 경우 /etc/cron.deny 파일 존재 유무에 상관없이
/etc/cron.allow 파일에 등록된 사용자만 가능하다.
/etc/cron.allow 파일이 존재하지 않고, /etc/cron.deny만 존재하는 경우에는
/etc/cron.deny 파일에 등록된 사용자만 사용이 불가능하다.
두 파일 모두 존재하지 않는 경우에는 일반 사용자는 불가능하고 root만 사용 가능하다.
------------------------------------------------------------------------------
# crontab -l 현재사용하고 있는 crontab 파일 출력
# crontab -e crontab 파일의 수정(edit)
crontab -e 로 수정이 안될경우
1. #csh 2. #setenv EDITOR vi 명령 수행후 수정함
root crontab file
/etc/cron.d/logchecker
: /var/cron/log가 최대 화일 크기를 초과하는지를 판단하고, 만약
초과하면 내용을 /var/cron/olog로 복사한다.
/usr/lib/newslog
: syslog daemon에 의해서 /var/adm 디렉토리에 생성되는 log file을 청소한다.
Controlling crontab Access
cron utility를 제어하는 두개의 file
/etc/cron.d/cron.allow
/etc/cron.d/cron.deny
User Access
- cron.allow file이 존재하면, 그 file에 적혀있는 user만이
crontab 명령어를 사용할 수있다.
- 이 file이 없으면 crontab은 cron.deny file을 체크해서 user가 crontab 실행을 금지할 지를 결정한다.
- 만약 둘다 없으면 crontab은 root만 실행시킬 수 있다.
cf) daemon, bin, smtp, nuucp, listen, nobody, noaccess file은 crontab 사용할 수 없다.
- cron.allow file은 user가 만들어 주어야한다.
- crontab 명령어는 crontab file을 수정, 삭제, 편집할 수있다.
- crontab 명령어는 user에대한 입력을 /var/ spool/cron/crontabs/username에 저장한다.
- root 만이 다른 user의 crontab file을 읽고 편집할 수있다.
- root의 crontab file은 /var/spool/cron/crontab/root 이다.
crontab file format
# cd /var/spool/cron/crontabs 에 가신후
# more root
10 3 * * 0,4 /etc/cron.d/logchecker
10 3 * * 0 /usr/lib/newsyslog
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
---------- ========================
1 2 3 4 5 program
1 : minute (0-59),
2 : hour (0-23),
3 : day of the month (1-31),
4 : month of the year (1-12),
5 : day of the week (0-6 with 0=Sunday).
이렇게 되고 실행할 파일명을 program 부분에 적어 주면 된다.
파일을 맞게 변경후 cron 데몬을 리스타트시키면 된다.
아니면..리부팅
예로
* * 1 * * /usr/local/program
이렇게 한다면 한달에 한번 매월 1일에만 program 을 실행.
지금 root 파일을 변경했는데 root 파일이 아닌 각계정의 파일을 만들어 사용하면 각유저마다 자동으로 실행할수 있다.
///////////////////////////////////////////////////////////////////////////////////////
crontab 옵션
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
-u user : user 사용자에 대해서 crontab 작업을 수행한다. 생략하면 crontab 명령을 실행하는 사용자에 대해서 crtontab 작업을 수행.
-l : 현재 cron table을 보여 줌
-r : 현재 cron table을 삭제
-e : 현재 cron table을 편집
일반적으로 crontab -e 명령을 주로 사용한다.
crontab 사용 권한 : /etc/cron.allow, /etc/cron.deny
특정 사용자에게만 cron의 사용을 허가할 경우
/etc/cron.allow 파일에 허가할 사용자만 추가해준다
/etc/cron.deny 파일에 허가하지 않을 사용자를 추가한다
/etc/cron.allow를 먼저 참조한다.
/etc/cron.allow에 명시된 사용자는 cron job을 실행할 수 있다.
/etc/cron.allow에 없는 사용자는, /etc/cron.deny에도 없다면, cron job을 실행할 수 있다.
/etc/cron.allow, /etc/cron.deny 두 파일이 존재하지 않으면 슈퍼 유저만 cron job을 수행할 수 있다.
/etc/cron.deny 파일이 존재하고 아무 내용 없이 비어 있다면, 모든 사용자가 cron job을 수행할 수 있다.
cron table의 각 필드
+-------------------------------------------------------------------+
| 분 | 시간 | 날짜 | 달 | 요일 | 사용자 | 명령 |
+-------------------------------------------------------------------+
minute(0~59) hour(0-23) day(1-31) month(1-12) weekday(1-7) command
<분>은 0-59 <시>는 0-23 <날짜>는 0-31 <달>은 0-12(0또는 12는 12월, 1은 1월...) <요일>은 0-7(0과 7은 일요일, 1은 월요일...)
''*'' : everytime
''-'' : 범위 지정, 예를 들어 시간 필드에 1-3이면 1시와 3시 사이
'','' : separator, 예를 들어 시간 필드에 1,3이면 1시와 3시
/ : 시간필드 에서 23-7/2라면 23시부터 07시까지 매 2시간마다라는 의미
분필드에서 */2라면 매 2분마다라고 해석하면 된다.
사용 예
30 05 * * 1 ~/bin/backup.sh
==> 매주 월요일 오전 05시 30분에 ~/bin/backup.sh을 실행
30 2 1 * * ~/bin/backup.sh
==> 매월 1일 새벽 2시 30분에 ~/bin/backup.sh를 실행
20 1 * * * find /tmp -atime +3 -exec rm -f () '';''
==> 매일 새벽 01시 20분에 3일간 접근하지 않은 /tmp내의 파일을 삭제
=================================================
tar, YUM, RPM 사용법
1.RPM 명령어
rpm -i 패키지 설치
rpm -u 패키지 업그레이드
rpm -e 패키지 제거
rpm -q 패키지 질의
rpm -V 패키지 점검
rpm -b 패키지 생성
--replacesfiles 패키지 충돌무시
--force 강제성치
--nodeps 의존성 무신
2.YUM 명령어
rpm 기반의 시스템을 자동으로 업데이트하거나 패키지를 쉽게 설치 및 삭제해주는 도구이다.
*yum 설정(/etc/yum.conf)
yum list
=>전체 패키지에 대한 정보를 출력한다.
yum check-update, yum list updates
=>업데이트 가능한 패키지 보기
yum install -y 패키지 설치
yum update 패키지 업데이트
yum search 패키지 검색
tum info 패키지 정보확인
yum locationinstall 하드디스크에 있는 패키지 설치 => rpm으로 설치하면 되기 때문에 자주 사용하지 않음
'IT 관련정보 > 리눅스' 카테고리의 다른 글
리눅스 기본 이론(7) - CD-ROM, 커널 컴파일, 시스템 로그 (0) | 2017.04.19 |
---|---|
리눅스 기본 이론(6) - 로그인 쉘, 프롬프트, 쉘 환경변수, 백업, rsync (0) | 2017.04.18 |
리눅스 기본 이론(4) -프로세스 관리 (0) | 2017.04.18 |
리눅스 기본 이론(3) - 마운트 및 파일 시스템, 스왑, 쿼터 설정 (0) | 2017.04.18 |
리눅스 기본 이론(2) 하드 링크와 소프트 링크, 권한 설정 (0) | 2017.04.18 |