예전 스크립트에서는 그냥 특정 사용자에 한해서 백업을 하도록 하고 있었습니다. 하지만 백업의 중요성을 절실히 느끼게 되서, 요번엔 사용자의 계정 사용량을 체크해서 1기가 미만으로 사용을 하고 있다면 자동으로 백업을 하도록 만들었습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#!/bin/sh TMPWATCH="/usr/sbin/tmpwatch" cd /home/member for member in *;do if [[ -d "${member}" ]];then # get usage usage=`du -s "${member}"|awk '{ print $1 }'` # remain only one item if [[ -d "/backup/home/${member}" ]];then lastone=`ls -t "/backup/home/${member}" | head -n 1` if [[ -f "/backup/home/${member}/${lastone}" ]];then touch -m "/backup/home/${member}/${lastone}" fi ${TMPWATCH} --mtime 1 "/backup/home/${member}" else mkdir -p "/backup/home/${member}" fi # if usage is less than 1.4GB if [ ${usage} -le 1400000 ]; then tar cfzp "/backup/home/${member}/${member}-`date +%y%m%d`.tar.gz" "${member}" fi fi done |
또한 ls 와 head, tmpwatch 를 이용해서 백업본이 최신 2 개만이 유지되도록 만들어놓았습니다. 만약 타르볼로 묶는데 1시간 이상 걸리는 용량을 아카이빙 하면 문제가 될 수 있습니다. –;