
[월:] 2020년 01월
[MacOS] 클립보드 매니저 Clipy
복사/붙여넣기를 할 때 이전 복사했던 것들을 다시 붙여 넣는 경우가 많다.
Windows에서는 Ditto를 애용하는데, 맥에서는 어떤게 있나 보니 오픈소스인 Clipy가 있다.
github https://github.com/Clipy/Clipy 에서 받을 수 있고,
사용법은 간단히 Shift + Cmd + ‘V’ 혹은 Ctrl + Cmd + ‘V’이다.
기본 설정은 항목이 폴더 안에 들어가도록 되어 있는데,
“Preferences…” / “Menu” / “Number of items place inline:” 이 “0”으로 되어 있던 것을 “10” 등으로 적당히 늘려주면 된다.
[Linux] Gzip으로 압축된 로그 파일 다루기
logrotate를 사용하면 /var/log 아래에 gzip된 로그 파일(.gz)들이 남는다.
로그 파일을 보고 싶을 때 압축을 풀어서 봐도 되지만, 압축을 풀지 않고 다룰 수 있는 명령어들이 있다.
- zcat: 압축된 파일 보기
- zgrep: 압축된 파일에서 grep
- zless: gz파일을 위한 less. zmore도 있다.
zless log.gz 이면 로그 파일 보는데 큰 문제 없을 거다.
zcat으로 | 하여 파이프를 통해 이용하는 것도 좋은 방법이다.
more는 오래된 도구로 less와의 차이는 less는 앞 쪽으로도 스크롤이 된다. more는 뒤로만 된다.
[Linux] logrotate 설정
로그 남길 때 그냥 주구장창 남기면 디스크가 꽉 찬다.
/var/log 아래 남는 log 들처럼 주기적으로 gzip으로 압축하고, 오래된 로그는 저절로 지워지도록 하고 싶을 때 logrotate를 쓴다.
logrotate를 설정해서 주기마다 압축해서 남기고, 때 되면 지우도록 만들자.
아래 명령은 도움말인 man page를 보여 준다.
# man logrotate
logrotate의 설정 파일들은 아래에서 찾을 수 있다.
/etc/logrotate.conf : logrotate의 기본 설정 파일. 여기서 /etc/logrotate.d/ 아래의 파일들을 include 하도록 되어 있다.
/etc/logrotate.d/ : logrotate를 사용해서 로그를 남기고 싶은 유틸리티들이 여기다 설정 파일을 둔다.
예제를 보자.
# vi /etc/logrotate.d/mysqlmon
/var/log/mysqlmon/mysqlmon.log /var/log/mysqlmon/mysqlmon.err {
daily
missingok
rotate 7
compress
notifempty
}
위의 예제의 각 옵션은 다음과 같다.
daily: 하루 주기
missingok: 로그 파일이 없어도 에러 메시지를 쓰지 않는다.
rotate 7: 오래된 로그를 7개 남긴다.
compress: gzip으로 압축한다.
notifempty: 로그 파일이 비어 있으면 rotate하지 않는다.
다른 자세한 옵션은 man page를 참고하자.
[Linux] mysql 복구 script
mysql이 자꾸 죽으면서 워드프레스가 DB연결을 못하고 자꾸 에러를 띄운다.
InnoDB memory pool size가 기본으로 128M로 되어 있는데, 이걸 할당을 못하고 죽는 것 같다.
64M로 줄이자.
# vi /etc/mysql/conf.d/innodb.cnf [mysqld] innodb_buffer_pool_size = 64M
죽으면 사실 그냥 service mysql restart 해주면 되는데, 요거도 귀찮으니까 돌려서 죽으면 실행하게 스크립트를 만들자
# vi mysqlmon.sh
#!/bin/bash
linecount=`ps -aux | grep /usr/sbin/mysqld | wc -l`
if [ "$linecount" = "2" ]; then
echo "`date`: Working well" >> /var/log/mysqlmon/mysqlmon.log;
else
echo "`date`: Trying to recover..." >> /var/log/mysqlmon/mysqlmon.err;
service mysql restart;
echo "`date`: Done" >> //var/log/mysqlmon/mysqlmon.err;
fi
crontab에 등록하자
# crontab -e */5 * * * * /root/mysqlmon.sh
log파일을 관리하도록 [Linux] logrotate 설정 글의 예제처럼 logrotate를 설정하자.