리눅스 파일검색/내부 문자열 검색 (find / grep)



안녕하세요!

오늘은 리눅스에서 파일 검색을 하기 위한 명령어를 소개합니다!


먼저 find 명령어를 살펴볼게요!


find명령어는 파일을 찾는 명령어입니다!


find 파일 찾을 위치 지정 -name 찾을 파일 이름

ex)


  [user@server /] # find ./ -name test.txt 

  위를 설명하면 ./(현재 폴더 부터, 하위 폴더 포함) 에서 test.txt란 이름을 가진 파일을 찾아줘! 입니다.


  

다음으로 파일 내부 문자열을 검색하는 grep 명령어 입니다.


사실 grep은 여러군데서 사용하고 있는 명령어 이기 때문에, 파일 내부 문자열 검색만을 위해서 쓰이고 있지는 않습니다.

grep의 man을 보시면 -print lines matching a pattern 으로 나와있어요.


이번 포스팅에서는 grep을 통해서 파일 내부의 문자열을 검색해서, 찾고자 하는 문자열과 동일한 문자열을 가진

파일을 찾아 줄거예요.


grep -r "찾을 문자열" ./*

ex)


   [user@server /] # grep -r "test" ./

  위를 설명하면 ./(현재 폴더 부터, 하위 폴더 포함) 에서 test라는 문자열이 있는지 모두 찾아줘! 입니다. ( 단, 하위 디렉토리 모두에서. -r )





출처 : http://ngee.tistory.com/83#comment18181897







[PHP] array_map 함수

2016.09.01 16:19
php

function array_map

PHP array_map 함수의 사용법을 알아보자.



array array_map(callback callback, array arr1[, array ...])


배열의 각 원소에 사용자가 정의한 함수를 적용하고 적용한 후의 결과를 배열로 반환한다.


ex)


$food_type = array("food", "beverage", "cuistine", "fruit");

$food_name = array("pizza", "cola", "pasta", "apple");


function showFoods ($a, $b){

return $b." is ".$a;

}


//배열의 각 원소에 대하여 순서대로 showFoods() 함수를 실행한다.

$foods    =    array_map("showFoods", $food_type, $food_name);

  print_r($foods);


/*

  Array

  (

  [0]    =>    pizza is food

  [1]    =>    cola is beverage

  [2]    =>    pasta is cuisine

  [3]    =>    apple is fruit

  )

*/



$food_typearray("food""beverage""cuisine""fruit");

$food_name = array("pizza""cola""pasta""apple");


function makeFoods ($a, $b){

return array( $a => $b ) );

}


//배열의 각 원소에 대하여 순서대로 makeFoods() 함수를 실행한다.

$foods    =    array_map("makeFoods", $food_type, $food_name);

  print_r($foods);


/*

  Array

  (

  [0]    =>    

  Array (

[food]    =>    pizza

  )

  [1]    =>    

  Array (

      [beverage]    =>    cola

  )

  [2]    =>    

  Array (

[cuisine]    =>    pasta

  )

  [3]    =>    

  Array (

[fruit]    =>    apple

  )

*/





* 출처 : http://88240.tistory.com/202#recentTrackback 

[REDIS] REDIS RDB

2016.09.01 12:24


REDIS RDB



RDB는 특정 시점의 데이터를 바이너리 파일로 저장한다.

AOF 파일보다 사이즈가 작고, 따라서 로딩 속도가 AOF 보다 빠르다!

RDB파일의 내부 구조는 레디스 메모리(in-memory) 구조와 매우 비슷하다.

RDB 압축 파일을 만들지 위해서는 LZF압축을 사용할 수 있다.

LZF압축은 압축 시 아주 작은 메모리 요구사항을 가진 빠른 압축 알고리즘으로,

레디스와 효율적으로 동작한다.


이는 특정 시간, 즉 매 시간, 매 일, 매 주, 매 달 마다 RDB 파일을 저장할 수 있기 때문에,

RDB의 백업과 복구를 할 수 있다.


시점을 정하는 redis.conf의 파라미터는 SAVE이다.

SAVE 조건은 여러 개를 지정할 수 있고, 모두 or 조건이다.

즉 어느 것 하나라도 만족하면 저장한다.


redis.conf 파일의 초기값은 아래와 같이 되어있으며 뜻은 이렇다.

    • save 900 1            900초(15분) 동안 1번 이상 key변경이 발생하면 저장
    • save 300 10         300초(5분) 동안 10번이상 key변경이 발생하면 저장
    • save 60 10000     60초(1분) 동안 10000번이상 key 변경이 발생하면 저장.


RDB를 저장하지 않으려면 이 파일에서 SAVE를 모두 주석 처리 하면 된다.

RDB 파일 이름 지정은 redis.conf 에서 dbfilename dump.rdb이다.

명령으로 RDB파일을 생성할 수도 있다. BGSAVE 혹은 SAVE로 가능하다.

(+ dump.rdb 파일의 생성 경로는 redis.conf 파일의 dir 에서 설정 가능하다.!)




SAVE/BGSAVE


SAVE 커맨드는 RDB파일을 즉시 생성하지만, 스냅샷(snapshot) 과정에서 레디스 서버를 블락시키기 때문에 

조심히 써야한다.

대신 BGSAVE 커맨드(백그라운드 저장)을 사용할 수 있다.

BGSAVE 커맨드는 SAVE 커맨드의 기능과 동일하지만,

자식 프로세스로 실행하기 때문에 레디스를 블럭시키지 않는다.


백그라운드 저장 시 redis-server는 성능 저하를 피하기 위해 자식 프로세스(fork)를 생성한다.

그래서 redis-server 프로세스는 어떠한 디스크 I/O 작업을 수행하지 않는다.

redis-server가 쓰기를 받고 있다면, 자식 프로세스는 변경된 메모리 페이지를 복사한다.

복사된 메모리로 인해 총 사용 메모리가 증가될 수 있다.(copy-on-write)


 BGSAVE의 동작순서는 이렇다 


 

   자식 프로세스를 fork()함 -> 자식프로세스는 데이터를 새 RDB temp파일에 씀 ->쓰기가 끝나면 기존 파일을 지우고,  이름을 

   변경함  



 redis-cli 에서 BGSAVE 수행 시 나오는 메시지


   redis 127.0.0.1:6379 > BGSAVE

   Background saving started..

                                                                                                         

info persistence 로 볼 수 있는 정보 (redis3.x 이상 버전 부터 되는 것 같다! 나는 안나왕 밍무룩)


   redis 127.0.0.1:6379 > info persistence

    • rdb_bgsave_in_progress:1               현재 Rewrite가 진행중임을 나타냄  
    • rdb_last_save_time:1434352287    지난 번 RDB 파일 저장 시간  
    • rdb_last_bgsave_status:ok              지난 번 RDB 파일 저장 성공 여부  
    • rdb_last_bgsave_time_sec:7           지난 번 RDB 파일 저장에 걸린 시간  
    • rdb_current_bgsave_time_sec:4     현재 RDB 파일 저장 시작하고 현재까지 경과 시간




출처 : 

http://www.redisgate.com/redis/configuration/persistence.php#rdb_start

http://www.dbguide.net/db.db?cmd=view&boardUid=186829&boardConfigUid=9&categoryUid=1458&boardIdx=156&boardStep=1

http://knight76.tistory.com/entry/redis-RDB


'BACK-END > REDIS' 카테고리의 다른 글

[REDIS] REDIS RDB  (0) 2016.09.01

+ Recent posts

티스토리 툴바