Win + Shift + S 키로 사용하는 캡쳐 도구를 1809빌드 부터 PrintScreen 키로 사용할 수 있다.
Windows 설정 / 접근성 / 키보드 / Print Screen 바로 가기 에서
PrtScn 단추를 사용하여 화면 캡처 열기를 켬 으로 바꾸면 된다.
Win + Shift + S 키로 사용하는 캡쳐 도구를 1809빌드 부터 PrintScreen 키로 사용할 수 있다.
Windows 설정 / 접근성 / 키보드 / Print Screen 바로 가기 에서
PrtScn 단추를 사용하여 화면 캡처 열기를 켬 으로 바꾸면 된다.
워드프레스 자체 플러그인을 이용해서 코드를 삽입하곤 했는데 이게 아무래도 맘에 안든다.
특히 글을 다시 수정하거나 하면 꼭 깨지곤 하는데… -_-+
글 작성하면서 코드를 같이 작성하는 경우가 많아서 꺼리고 있었는데 그냥 gist.github.com으로 가자.
복사/붙여넣기를 할 때 이전 복사했던 것들을 다시 붙여 넣는 경우가 많다.
Windows에서는 Ditto를 애용하는데, 맥에서는 어떤게 있나 보니 오픈소스인 Clipy가 있다.
github https://github.com/Clipy/Clipy 에서 받을 수 있고,
사용법은 간단히 Shift + Cmd + ‘V’ 혹은 Ctrl + Cmd + ‘V’이다.
기본 설정은 항목이 폴더 안에 들어가도록 되어 있는데,
“Preferences…” / “Menu” / “Number of items place inline:” 이 “0”으로 되어 있던 것을 “10” 등으로 적당히 늘려주면 된다.
logrotate를 사용하면 /var/log 아래에 gzip된 로그 파일(.gz)들이 남는다.
로그 파일을 보고 싶을 때 압축을 풀어서 봐도 되지만, 압축을 풀지 않고 다룰 수 있는 명령어들이 있다.
zless log.gz 이면 로그 파일 보는데 큰 문제 없을 거다.
zcat으로 | 하여 파이프를 통해 이용하는 것도 좋은 방법이다.
more는 오래된 도구로 less와의 차이는 less는 앞 쪽으로도 스크롤이 된다. more는 뒤로만 된다.
로그 남길 때 그냥 주구장창 남기면 디스크가 꽉 찬다.
/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를 참고하자.
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를 설정하자.
$ rsync -av --progress <source> <destination>
Local 로부터 local로의 sync가 아니라면 -z 옵션을 주는 것도 좋다. destination에서 source에 없는 파일은 지우고 싶다면 –delete 옵션을 준다. -h 옵션은 human readable하게 한다. –progress는 progress를 보여준다.
crontab으로 등록
# crontab -e
0 3 * * * rsync -avh --delete /mnt/NAS /media/dasomoli/Elements
나는 이렇게 한다.
#!/bin/bash
if [[ -b /dev/sda1 && -b /dev/sdb1 && -d /media/dasomoli/Elements && -d /mnt/NAS ]] \
&& ! [[ -e /media/dasomoli/Elements1 ]]; then
rsync -avh --delete /mnt/NAS /media/dasomoli/Elements >> /var/log/rsync/backup_exthdd.log;
else
echo "`date`: Error: HDDs have not mounted" >> /var/log/rsync/backup_exthdd.err;
mount >> /var/log/rsync/backup_exthdd.err;
fi
그리고 logrotate 설정을 해둔다.
# vi /etc/logrotate.d/backup_exthdd
/var/log/rsync/backup_exthdd.log /var/log/rsync/backup_exthdd.err {
weekly
missingok
rotate 5
compress
notifempty
}
DVD 같은 미디어의 경우, 표면의 상처 등으로 못 읽게 되는 일이 생긴다.
중요한 자료의 경우, 미리 백업을 해두자.
여러 동영상 파일명을 적은 Text file을 하나 만든다.
[code]
file ‘StepByStep/01_1-3/1-3-2.m4v’
file ‘StepByStep/01_1-3/1-3-3.m4v’
file ‘StepByStep/01_1-3/1-3-4.m4v’
file ‘StepByStep/01_1-3/1-3-5.m4v’
file ‘StepByStep/01_1-3/1-3-6.m4v’
file ‘StepByStep/01_1-3/1-3-7.m4v’
file ‘StepByStep/01_1-3/1-3-8.m4v’
file ‘StepByStep/01_1-3/1-3-9.m4v’
file ‘StepByStep/01_1-3/1-3-10.m4v’
file ‘StepByStep/01_1-3/1-3-11.m4v’
file ‘StepByStep/01_1-3/1-3-12.m4v’
file ‘StepByStep/01_1-3/1-3-13.m4v’
file ‘StepByStep/01_1-3/1-3-14.m4v’
file ‘StepByStep/01_1-3/1-3-15.m4v’
file ‘StepByStep/01_1-3/1-3-16.m4v’
file ‘StepByStep/01_1-3/1-3-17.m4v’
file ‘StepByStep/01_1-3/1-3-18.m4v’
file ‘StepByStep/01_1-3/1-3-19.m4v’
file ‘StepByStep/01_1-3/1-3-20.m4v’
file ‘StepByStep/01_1-3/1-3-21.m4v’
file ‘StepByStep/01_1-3/1-3-22.m4v’
file ‘StepByStep/01_1-3/1-3-23.m4v’
file ‘StepByStep/01_1-3/1-3-24.m4v’
file ‘StepByStep/01_1-3/1-3-25.m4v’
file ‘StepByStep/01_1-3/1-3-26.m4v’
file ‘StepByStep/01_1-3/1-3-27.m4v’
file ‘StepByStep/01_1-3/1-3-28.m4v’
file ‘StepByStep/01_1-3/1-3-29.m4v’
file ‘StepByStep/01_1-3/1-3-30.m4v’
file ‘StepByStep/01_1-3/1-3-31.m4v’
file ‘StepByStep/01_1-3/1-3-32.m4v’
file ‘StepByStep/01_1-3/1-3-33.m4v’
file ‘StepByStep/01_1-3/1-3-34.m4v’
file ‘StepByStep/01_1-3/1-3-35.m4v’
file ‘StepByStep/01_1-3/1-3-36.m4v’
[/code]
만드는데 쓴 bash shell 명령은 다음과 같다.
[code]
for DIR in `ls`; do pushd $DIR; for FILE in `ls -tr`; do echo "file ‘StepByStep/`basename \`pwd\“/$FILE’"; done > ../../`basename \`pwd\`.txt`; popd; done
[/code]
3. 다음 명령어를 커맨드 프롬프트에서 실행한다.
[code]
ffmpeg -f concat -i filename.txt -c copy -fflags +genpts output.mp4
[/code]
이걸 디렉토리 별로 돌린 bash shell 명령은 다음과 같다
[code]
for TXT in `ls *.txt`; do ffmpeg -f concat -i $TXT -c copy -fflags +genpts `echo $TXT | cut -d. -f1`.mp4; done;
[/code]
DNS cache를 flush 하고 싶을 때:
[code]
ipconfig /flushdns
[/code]