[Linux] rsync 간단 사용

$ 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
}

[github] 웹 브라우저로 내 repository 업데이트하기

github에서 fork한 내 repository는 해당 시점의 코드에서 멈춰 있게 된다. 이걸 git으로 작업하지 않고 그냥 브라우저 내에서 업데이트할 수 있다. 나에게 pull request하는 방법을 쓰면 된다.

절차를 간단히 설명하면 다음과 같다.

  1. 내 repository에서 “Compare”를 누른 후, “switching the base”

  2. “Create pull request”를 눌러 원본 repository에서 나에게 pull request를 생성

  3. 아래 confirm하는 곳에서 “Merge pull request” 옆의 세모를 눌러 “Rebase and merge”