날짜 로깅 및 형식 지정
logdate=$(date +%Y-%m-%d)
sysdate=`date +%y-%m-%d\ %H:%M:%S`
rmdtime=`date -d "3Days ago" +%Y-%m-%d`
삭제 구문
find $DIR/* -daystart -mtime +NUM -exec rm -rf {} \;
Date=$(date +%Y-%m-%d)
KEEP=3
OLDDATE=`date +%Y-%m-%d -d "${KEEP} day ago"`
rm -f 백업파일생성경로/${OLDDATE}*.tar.gz
del_log_days="14"
$log_dir="/절대경로"
find $log_dir \( -name "raid_check-*" -mtime +$del_log_days \) -exec rm -f {} \;
시스템 로그에 남기기
logger "남길 메시지"
delay 걸기
sleep 1m
top 일정 부분만 체크
top -n 1 -b | head -n 숫자
패스워드 및 만료일 변경
/sbin/pam_tally2 --user root --reset
chage -M30 root
echo '$username1:$password1' | chpasswd
chage -l $username1
메모리 초기화
swapoff -a && swapon -a
sync && echo 3 > /proc/sys/vm/drop_caches
echo 값으로 프로세스 성공여부 판단 함수
plog="/절대경로"
function PSCHK() {
CHK=$1
if [ $CHK -eq 0 ]; then
echo "SUCCESS" >> $plog
else
echo "FAIL" >> $plog
fi
}
CHK=`echo $?`
PSCHK $CHK
로깅 철저히 하려는 rsync (백업 용)
rsync -avzPprt --delete --log-file="$log" 123.456.789.1::BACKUP/* /$backupdir/
tar 압축파일
tar -zcvf 생성할_파일.tar.gz 원본_파일_경로
tar -zxvf 압축파일.tar.gz (-C 해제 경로 지정)
if문
if [ $1 조건 $2 ]; then
실행 코드
fi
대표 표현
값 비교 조건문
값 | 의미 |
---|
-z ${A} | ${A} 문자열 길이가 0이면 TRUE |
-n ${A} | ${A} 문자열 길이가 0이 아니면 TRUE |
$1 -eq $2 | $1과 $2의 값이 같으면 TRUE |
$1 -ne $2 | $1과 $2의 값이 다르면 TRUE |
$1 -gt $2 | $1 > $2 TRUE |
$1 -ge $2 | $1 >= $2 TRUE |
$1 -lt $2 | $1 < $2 TRUE |
$1 -le $2 | $1 <= $2 TRUE |
파일 조건문
값 | 의미 |
---|
-d ${dir} | ${dir}이라는 디렉토리가 존재하면 TRUE |
-e ${file} | ${file}이라는 파일(모든 파일 유형 가능)이 존재하면 TRUE |
-f ${file} | ${file}이라는 파일이 일반 파일이면 TRUE |
-S ${socket_file} | ${socket_file}이라는 소켓 파일이 존재하면 TRUE |
-L ${s_link} | ${s_link}라는 심볼릭 링크가 존재하면 TRUE |
-r ${file} | ${file} 파일이 read 권한이 있으면 TRUE |
-w ${file} | ${file} 파일이 write 권한이 있으면 TRUE |
-x ${file} | ${file} 파일이 excute 권한이 있으면 TRUE |
-s ${file} | ${file}이라는 파일 크기가 0보다 크면 TRUE |
${f1} -nt ${f2} | ${f1}이 ${f2}보다 최신 파일이면 TRUE |
${f1} -ot ${f2} | ${f1}이 ${f2}보다 오래된 파일이면 TRUE |
${f1} -ef ${f2} | ${f1}과 ${f2}이 같은 파일이면 TRUE |
다중조건 표현
if [ $1 -eq 0 ]; then
echo "$1은 0입니다."
else echo "$1은 0이 아닙니다."
fi
if [ $1 -eq 0 ]; then
echo "$1은 0입니다."
elif [ $1 -eq 1 ]; then
echo "$1은 1입니다."
else "$1은 0도 1도 아닙니다."
fi
if [[ $num1 -gt 100 && $num1 -lt 90 ]]; then
혹은
if [ $num1 -gt 100 ] && [ $num1 -lt 90 ]; then
다중조건문 시 표현