iconv

 

 

※ 요약

리눅스 명령어 iconv는 주어진 파일의 인코딩 방식을 변경할때 사용하는 명령어다. 

 

※ 경로

/usr/bin/iconv

 

※ 사용법

iconv -f [변경전 인코딩] -t [변경할인코딩]
ex) iconv -c -f euc-kr -t utf-8 test.txt > test-utf8.txt

 

※ 옵션

 옵션

 설명

 --from-code, -f encoding

 원본 파일의 변경 전 문자 인코딩을 지정

 --to-code, -t encoding

 변경하려는 대상의 문자 인코딩을 지정

 --list, -l

 지원하는 인코딩 목록들을 출력

 --output, -o file

 출력 내용을 표준출력 대신 지정한 파일에 저장

 --silent, -s

 경고 메시지를 출력하지 않음

 --verbose

 상태의 자세한 정보를 출력

'프로그래밍 > linux' 카테고리의 다른 글

리눅스 메모리 사용량순 프로세스 보기  (0) 2019.04.09
리눅스 패스워드 털렸는지 확인하기  (0) 2018.04.05
CentOS 방화벽 사용방법  (0) 2018.03.26
IPTABLE  (0) 2018.03.26
스태틱 라우팅 설정  (0) 2018.03.13

php에서 Notice: No file uploaded in Unknown on line 0 에러 등등

파일첨부를 하지 않았을 때 처리 하는 방법

 

submit 하기전에 

 

        $('.btn_file').each(function (index, value){
            if($(this).val() == ''){
                $(this).attr("disabled",true);
            }
        });

선택된 파일이없으면 disabled 처리해준다

1 간단히 보기(ps -ef)

명령어
ps -ef --sort -rss
실행예시
[root@zetawiki ~]# ps -ef --sort -rss
UID        PID  PPID  C STIME TTY          TIME CMD
mysql     1154  1064 99 May03 ?        213287-12:54:30 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --l
apache   26245  1202  0 03:48 ?        00:00:05 /usr/sbin/httpd
apache   26247  1202  0 03:48 ?        00:00:07 /usr/sbin/httpd
... (생략)
root       741     2  0 May03 ?        00:00:00 [kmpath_handlerd]
root       768     2  0 May03 ?        00:00:00 [kjournald]

→ /usr/libexec/mysqld 프로세스가 물리 메모리를 가장 많이 점유하고 있다.

1.1 상위 10개

명령어
ps -ef --sort -rss | head -n 11

2 메모리 사용량 표시 (ps -eo)

명령어
ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 11
실행예시
[root@zetawiki ~]# ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 11
USER       PID  PPID   RSS    SZ    VSZ %MEM %CPU     TIME CMD
mysql     1154  1064 26116 582252 642724  4.8 6623646 213287-12:54:31 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
apache   26245  1202 24284 18320 347196  4.5  0.0 00:00:05 /usr/sbin/httpd
apache   26247  1202 23780 17824 346700  4.4  0.0 00:00:07 /usr/sbin/httpd
apache   26248  1202 23632 17048 345924  4.4  0.0 00:00:05 /usr/sbin/httpd
apache   26242  1202 23112 18080 342768  4.3  0.0 00:00:06 /usr/sbin/httpd
apache   26249  1202 23100 18076 342764  4.3  0.0 00:00:06 /usr/sbin/httpd
apache   26692  1202 23084 18084 342772  4.3  0.0 00:00:03 /usr/sbin/httpd
apache   26244  1202 22844 17828 342516  4.2  0.0 00:00:06 /usr/sbin/httpd
apache   26243  1202 22832 17828 342516  4.2  0.0 00:00:08 /usr/sbin/httpd
apache   26693  1202 22832 17820 342508  4.2  0.0 00:00:04 /usr/sbin/httpd

→ /usr/libexec/mysqld 프로세스가 물리 메모리를 가장 많이 점유하고 있으며 그 용량은 26116KB이다.

2.1 명령인수 숨기기

프로세스 수행명령어에서 인수부분을 표시하지 않으려면 cmd를 comm으로 변경하면 된다.

명령어
ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -rss | head -n 11
실행예시
[root@zetawiki ~]# ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -rss | head -n 11
USER       PID  PPID   RSS    SZ    VSZ %MEM %CPU     TIME COMMAND
mysql     1154  1064 26116 582252 642724  4.8 6624384 213287-12:54:31 mysqld
apache   26245  1202 24284 18320 347196  4.5  0.0 00:00:05 httpd
apache   26247  1202 23780 17824 346700  4.4  0.0 00:00:07 httpd
apache   26248  1202 23632 17048 345924  4.4  0.0 00:00:05 httpd
apache   26242  1202 23112 18080 342768  4.3  0.0 00:00:06 httpd
apache   26249  1202 23100 18076 342764  4.3  0.0 00:00:06 httpd
apache   26692  1202 23084 18084 342772  4.3  0.0 00:00:03 httpd
apache   26244  1202 22844 17828 342516  4.2  0.0 00:00:06 httpd
apache   26243  1202 22832 17828 342516  4.2  0.0 00:00:08 httpd
apache   26693  1202 22832 17820 342508  4.2  0.0 00:00:04 httpd
 

 

출처 : https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%A9%94%EB%AA%A8%EB%A6%AC_%EC%82%AC%EC%9A%A9%EB%9F%89%EC%88%9C_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EB%B3%B4%EA%B8%B0

오라클을 사용할때는 어렵게 구현 했던것을 MySQL을 사용하면서 아주 쉽게 구현이 가능했다.

Row Data:
+-----------+----------+
| colHeader | value    |
+-----------+----------+
| Header1   | value 1  |
+-----------+----------+
| Header2   | value 2  |
+-----------+----------+
| Header3   | value 3  |
+-----------+----------+
Output:
+-----------+-----------+-----------+
| Header1   | header2   | Header3   |
+-----------+-----------+-----------+
| Value 1   | value 2   | Value 3   |
+-----------+-----------+-----------+
방법1 원시적인 방법이며, 조회속도 자체가 느리다.
SELECT t1.value AS `Header1`,
       t2.value AS `Header2`,
       t3.value AS `Header3`
  FROM (SELECT * FROM table1 WHERE colHeader='Header1') t1
  JOIN (SELECT * FROM table1 WHERE colHeader='Header2') t2
  JOIN (SELECT * FROM table1 WHERE colHeader='Header3') t3;
방법2 깔끔하게 해결 된다.
SELECT  
  ID,
  GROUP_CONCAT(if(colHeader = 'Header 1', value, NULL)) AS 'Header 1', 
  GROUP_CONCAT(if(colHeader = 'Header 2', value, NULL)) AS 'Header 2', 
  GROUP_CONCAT(if(colHeader = 'Header 3', value, NULL)) AS 'Header 3' 
FROM myTable
GROUP BY ID;

[출처] MySQL (or MariaDB) 에서 row 데이터를 column 으로 변경하기.|작성자 동쪽새

'프로그래밍 > mysql' 카테고리의 다른 글

[MYSQL] CASE 사용법  (0) 2019.03.21
[MYSQL] explain 처럼 자르기  (0) 2019.03.21
[MYSQL] 날짜관련  (0) 2019.03.21
[MYSQL] Replication 관리방법  (0) 2019.03.21
[MYSQL] UPDATE 병렬처리 방법  (0) 2019.03.21

큰 소리로 반복적으로 '꾸잉꾸잉' : 가장 기본적인 의사표현. 주로 건초나 물이 없을 때 그런다.

작은 소리로 '구구구': 편안함,안정됨의 표현이다.

큰 소리로 '꾸익' : 첫번째와 달리 반복적으로 하지않는 경우엔, 공포, 고통, 외로움의 표현이다.

작은 소리로 '꾸르륵'거리는 것: 거부의 의사표현이다.

이를 갈때: 상대를 경고하거나 화났을 때의 의사표현.

두다리로 일어설 때: 주인에 대한 관심, 먹이를 줄 것이라고 기대될 때.

팝콘: 순간적으로 뛰어오르며 짧고 빠르게 '푸르르' 소리를 내는 것이다. 주로 어린 기니피그들에게 많이 보인다. 기쁨의 표현.

몸을 길게 빼는 행동: 두려움, 패닉의 표현이다.

행동을 멈추고 얼어붙을 때: 긴장의 표현이다.

도망갈 때: 도망간다는건 겁이 난다는 뜻이다. 생태계에서 약자이고 겁이 많은 기니피그로서는 당연한 행동이다.

킁킁거리기: 자신의 영역에서 무언가가 들어오면 탐색하기위해서 주로 그런다.

머리를 공중으로 튕기기: 기니피그를 쓰다듬어줄 때 기니피그가 머리를 튕기는 경우가 있다. 그만하라는 신호이다.

MySQL에서 사용되는 CASE WHEN 구문에 대해서 알아보겠습니다. CASE WHEN 구문은 프로그래밍 switch문과 굉장히 흡사한 구조입니다.

 

 

기존 SELECT 구문으로 출력한 모습입니다. 여기서 조건을 넣어 각각 다른 값을 출력할 수 있도록 해보겠습니다.

 


CASE WHEN 을 사용한 쿼리문입니다. 맨 위부터 천천히 살펴보면 일단 SELECT 구문으로 name 필드와 iq 필드를 출력하도록 설정했습니다.

 

여기서 name은 기존 출력하던 방식 그대로 출력하고 iq부분은 CASE WHEN 구문을 이용하여 조건을 넣었습니다.

 

만약 iq가 100을 넘는다면 기존 iq부분의 데이터를 THEN구문을 이용하여 천재라는 문자열로 변경하여 출력합니다. 

 

그리고 iq가 100이라면 iq부분의 데이터를 보통이라는 문자열로 변경합니다.

 

ELSE 구문은 위의 조건식 외 모든 데이터에 모두 적용됩니다. 그래서 위 조건식 외 모든 데이터는 바부라는 문자열로 변경됩니다.

 

CASE WHEN 구문 마지막에는 END 라는 구문을 써줘야합니다. (CASE = 시작, END = 끝)

 

마지막으로 iq 필드명을 AS를 이용하여 수준으로 변경하여 출력합니다.



출처 : http://kb.globalsoft.co.kr/web/web_view.php?notice_no=200

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX({컬럼명}, 'x', 2), 'x', -1) AS sHeight FROM {테이블명} -- {1024x512} 형식의 데이터를 x로 구분하여 두번째값 추출

ex) SELECT SUBSTRING_INDEX('www.mytestpage.info','.',2);  

RESULT -> www.mytestpage


SELECT SUBSTRING_INDEX('www.mytestpage.info','.',-2);   

RESULT -> mytestpage.info

SELECT UNIX_TIMESTAMP(CURDATE()); -- 오늘 시작일

SELECT UNIX_TIMESTAMP(CURDATE()) + 86399; -- 오늘 종료일


SELECT UNIX_TIMESTAMP(DATE_SUB( CURDATE() , INTERVAL 6 DAY)); -- 6일전 날짜

SELECT UNIX_TIMESTAMP(DATE_SUB( CURDATE() , INTERVAL 1 DAY)); -- 1일전 날짜

SELECT UNIX_TIMESTAMP(CONCAT( YEAR(CURDATE()), '-', MONTH(CURDATE()), '-01' )); -- 이번달 첫날 

SELECT UNIX_TIMESTAMP(LAST_DAY(CURDATE())); -- 이번달 마지막 날짜 

SELECT CURDATE(); -- 오늘 날짜 YYYY-mm-dd

SELECT DAY(CURDATE()) - 1; -- 오늘을 제외한 이번달 날짜

SELECT YEAR(CURDATE()); -- 이번년

SELECT MONTH(CURDATE()); -- 이번달

SELECT DAYOFMONTH(CURDATE()); -- 오늘

SELECT HOUR(NOW()); -- 시간

SELECT MINUTE(NOW()); -- 분

SELECT SECOND(NOW()); -- 초


SELECT UNIX_TIMESTAMP(CURDATE())-1

SELECT DATE_FORMAT(NOW() , '%Y-%m-%d %H:%i:%s')

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());

- 마스터, 슬레이브 Replication(동기화) 상태 보는 법

show master status -- 마스터에서

show slave status -- 슬레이브에서 (쉘에서 볼땐 show slave status \G; 로 하면 보기좋게 보임)


Master_Log_File

Read_Master_Log_Pos



SLAVE DB에서 확인해서

Slave_IO_Running와 Slave_SQL_Running이 Yes이고,

Read_Master_Log_Pos와 Exec_Master_Log_Pos 값이 일치하면 정상적으로 복제중이다.


==============================================================================


보통 리플리케이션이 깨졌을땐

슬레이브서버에서 stop slave 후


방법1. 

  에러부분을 수정


방법2.

  SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

처리 후 START SLAVE 하면 됨





- SLAVE DB 추가 및 이전 시 Read_Master_Log_Pos 틀릴경우 맞춰주는 법

슬레이브 서버에서

stop slave; # 슬레이브 서버를 멈춘 뒤

show slave status; # 현재 마스터의 쿼리실행내역을 확인

`Master_Log_File`

`Read_Master_Log_Pos`

# 서버이전 완료 후 슬레이브 서버에서 해당 쿼리 입력

CHANGE MASTER TO

MASTER_HOST = 'xxx.xxx.xxx.xxx'

,MASTER_PORT = 3306

,MASTER_USER = 'repl_user'

,MASTER_PASSWORD = 'NICE!COPYcat#00'

,MASTER_LOG_FILE = '마스터DB의 binary파일'

,MASTER_LOG_POS = 576375776;

START SLAVE;

UPDATE `table` SET `uid` = CASE
    WHEN id = 1 THEN 2952
    WHEN id = 2 THEN 4925
    WHEN id = 3 THEN 1592
    ELSE `uid`
    END
WHERE id  in (1,2,3)


쿼리 한번에 여러ROW의 값을 UPDATE 할 수 있다

+ Recent posts