한국어

네트워킹

온누리070 플레이스토어 다운로드
    acrobits softphone
     온누리 070 카카오 프러스 친구추가온누리 070 카카오 프러스 친구추가친추
     카카오톡 채팅 상담 카카오톡 채팅 상담카톡
    
     라인상담
     라인으로 공유

     페북공유

   ◎위챗 : speedseoul


  
     PAYPAL
     
     PRICE
     

pixel.gif

    before pay call 0088 from app


https://blog.lael.be/post/3932



서버가 완전히 부팅된 후에 무언가 자신만의 특별한 작업을 하고 싶을 때가 있다.

Windows 서버의 경우 [관리 도구]의 [작업 스케줄러]를 이용하면 된다. (자세한 설정 방법은 구글 검색을 이용해 보도록 하자.)

리눅스의 경우 다음과 같은 방법으로 설정 할 수 있다.

 


 

리눅스는 매우 다양한 설정지점(hooking point)이 있다.

부팅 시작시, 서비스 시작 (전, 중 후), 네트워크 연결 (전, 후), 부팅 후 등이 대표적인 설정지점이다.

 

이 중에서 가장 많이 쓰이는 “서버가 완전히 부팅된 후” 특정 작업을 실행하는 것을 실습해 보도록 하겠다.

Run init-script when server fully startup.

 

예제는 root 계정에서 실행한다.

Ubuntu 14.04 LTS 기준으로 작성되었으며, CentOS나 Fedora 등에서는 명령어가 다를 수 있다. (대략적인 방법은 동일)

 

1. 예제 실행을 위해 몇가지 프로그램 확인

a) 시간 동기화 프로그램 확인
# ntpdate

만약 없다면 apt-get install ntpdate 로 설치하도록 하자.

# ntpdate pool.ntp.org

aw1

 

요즘에는 클라우드 서버를 강제로 호스트 서버와 시간 동기화가 되도록 설정하는 경우가 많다. 따라서 다음의 상황이 발생할 수도 있다.

aw2

< 이 서버는 항상 호스트 서버와 시간동기화가 이루어진다. 즉 시간설정은 호스트 서버의 몫이다 >

 

b) 현재 서울의 날씨 정보 가져오기
# curl

만약 없다면 apt-get install curl 로 설치하도록 하자.

# curl -s "http://api.openweathermap.org/data/2.5/weather?q=Seoul,kr&appid=44db6a862fba0b067b1930da0d769e98"

 

c) php 프로그램 확인

무작정 따라하지 말고, 당신의 서버에 php 가 설치되어 있다면 따라하자.

# php -v
# php -r 'echo "b\n";';

aw3

 

2. 부팅시 실행될 Shell Script 생성

#cd /root
#pwd

/root

#vi script-test1.sh

 

x9

script-test1.sh
1
2
3
4
#!/bin/bash
ntpdate pool.ntp.org
curl -s "http://api.openweathermap.org/data/2.5/weather?q=Seoul,kr&appid=44db6a862fba0b067b1930da0d769e98" > weather.txt
echo Server Boot - `date` >> boottime.txt

aw8

 

실행권한을 준다.

# chmod 700 script-test1.sh

 

실행해 본다.

# /root/script-test1.sh

 

aw6

 

 

3. crontab 에 등록

crontab 은 예약 실행 관리자로써 서버 부팅시 마지막에 실행된다.

엄밀히 말해서 부팅중에 실행되는 것이 아니라 부팅이 끝나고 실행되는 것이다.

#crontab -e

에디터 선택옵션이 뜰 수 있는데 라엘이에겐 vim.basic 이 편하더라. (3번)

에디터 선택옵션은

#select-editor

명령어로 언제든 변경할 수 있다.

x6

 

@reboot 는 서버가 다시 켜졌을 때를 의미한다.

@reboot /root/script-test1.sh

aw7

 

4. 동작 테스트 (재부팅)

재부팅해서 스크립트의 동작여부를 확인한다.

# reboot

 


 

유용한 예제

쉘프로그램으로 PHP나 JAVA, Python 같은 외부 프로그램을 실행시켜 관련 스크립트를 작성할 수 있다.

이런 기법을 통해 curl 이나 mysql 연결, json 처리 등을 쉽게 할 수 있다.

# cd /root/
# vi script-test2.sh

 

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/php
<?php
chdir('/root');
 
$weather = exec('curl -s "http://api.openweathermap.org/data/2.5/weather?q=Seoul,kr&appid=44db6a862fba0b067b1930da0d769e98"');
 
$weather_decoded = json_decode($weather, true);
 
$boot_string = "Server boot at " . date('Y-m-d H:i:s') . ', Current weather is ' . $weather_decoded['weather'][0]['description'] . PHP_EOL;
 
file_put_contents('boottime.txt', $boot_string, FILE_APPEND);

aw9

 

# chmod 700 script-test2.sh

 

crontab 에 해당 스크립트 등록

 

확인

aw10

 

 

조회 수 :
74429
등록일 :
2017.08.30
19:33:35 (*.160.88.18)
엮인글 :
http://www.webs.co.kr/index.php?document_srl=3311469&act=trackback&key=e0e
게시글 주소 :
http://www.webs.co.kr/index.php?document_srl=3311469
List of Articles
번호 제목 글쓴이 조회 수 추천 수sort 날짜
123 vi 에디터에서 ^M 문자 한번에 모두 지우기 ( ^M, ^L을 이해하자) admin 16190   2019-06-20
 
122 데비안 제시 jessie 소스리스트 sourcelist admin 15113   2019-06-17
 
121 File Descriptor (파일 디스크립터) 설명 무엇인가 사용방법 admin 19622   2019-06-01
 
120 Start / Stop and Restart Apache 2 Web Server Command 아파치 시작 스톱 명령어 admin 38486   2019-04-08
 
119 DebianPackageManagement admin 13485   2019-04-08
 
118 Tls ssl admin 11015   2020-02-13
 
117 Redis 소개와 설치 방법, 보안 설정 방법(ip 허용, 비밀번호 설정)등 빠르게 세팅하기 admin 16145   2020-01-10
 
116 debian Ubuntu 에서 Timezone 확인 및 변경하기 쉽게 간단하게 date time admin 15851   2019-11-09
 
115 Install Missing ifconfig Command on Debian ip address admin 27714   2019-11-05
 
114 데비안 vs 우분투 : 데스크탑과 서버로 비교 해외 글 과 댓글 admin 27332   2019-10-31
 
113 Debian vs Ubuntu: Compared as a Desktop and as a Server 데비안 vs 우분투 비교 admin 17149   2019-10-31
 
112 리눅스 우분투, 32비트 64비트 확인 명령어 admin 17930   2019-01-06
 
111 How to install a Debian 9 (Stretch) Minimal Server 데비안 9 설치 admin 64920   2018-06-13
 
110 Which is better, GCC or Clang? admin 64449   2018-06-13
 
109 [리눅스] 부팅 시 자동 실행 프로그램 등록|작성자 나눔HN admin 33946   2018-06-01
 
108 리눅스 서버 유지보수 점검 메인터넌스 상황 파악 admin 19764   2018-04-14
 
107 Top 20 OpenSSH Server Best Security Practices 보안 대책 실제 적용 admin 24786   2018-04-14
 
106 Start Stop Restart Apache 2 Web Server Command Debian Ubuntu CentOS RHEL Fedora admin 19302   2018-04-14
 
105 리눅스 한글 2014 뷰어 다운로드 - hwpviewer admin 20797   2018-03-28
 
104 리눅스를 백업 복구 tar admin 22996   2018-03-28
 
103 zip 압축 파일 및 텍스트 파일의 한글 깨짐 해결 방법 admin 31445   2018-03-28
 
102 Lnux export how to admin 24917   2017-12-17
 
101 What's the difference between “adduser” and “useradd”? admin 23849   2017-12-15
 
100 useradd Command 리눅스 admin 65610   2017-12-15
 
99 How To Install Java with Apt-Get on Ubuntu 16.04 oracle java admin 48593   2017-10-13
 
98 우분투 Linux(Ubuntu)에 Java설치 및 환경 설정하는 방법 admin 26773   2017-10-13
 
97 우분투 다운로드 사이트 주소 ubuntu download 16.04.3 17.04 site link admin 27421   2017-10-13
 
96 How to install Java on linux with no Internet connectivity (using local repository) admin 43394   2017-10-01
 
95 윈도우 ssh 접속 프로그램 admin 32498   2017-09-29
 
94 openvpn Easy Windows Guide admin 123756   2017-09-20