특정한 시간에 또는 특정 시간 마다 어떤 작업을 자동으로 수행하게 해주고 싶을 때 사용하는 명령어이다. cron 시스템에는 시스템에서 기본적으로 사용하는 시스템크론이 있고 root나 일반 사용자가 자신의 cron을 직접 설정하는 사용자 크론이 있따.
주기적으로 반복되는 일을 자동으로 실행할 수 있도록 예약할 뿐만아니라 보안 취약점 검사를 수행시킬 수도 있다.
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
- 5시, 8시에 매 10분마다 script.sh를 실행
*/10 5,8 * * /script.sh
$ sudo crontab -l
$ sudo crontab -e
$ service cron restart
service cron start
service cron stop
#!/bin/bash
ARC=$(uname -a)
PCPU=$(nproc --all)
VCPU=$(grep "^processor" /proc/cpuinfo | wc -l)
FRAM=$(free -m | awk '$1 == "Mem:" {print $2}')
URAM=$(free -m | awk '$1 == "Mem:" {print $3}')
PRAM=$(free | awk '$1 == "Mem:" {printf("%.2f"), $3/$2*100}')
FDISK=$(df -Bg | grep '^/dev/' | grep -v '/boot$' | awk '{ft += $2} END {print ft}')
UDISK=$(df -Bm | grep '^/dev/' | grep -v '/boot$' | awk '{ut += $3} END {print ut}')
PDISK=$(df -Bm | grep '^/dev/' | grep -v '/boot$' | awk '{ut += $3} {ft+= $2} END {printf("%d"), ut/ft*100}')
CPUL=$(top -bn1 | grep '^%Cpu' | cut -c 9- | xargs | awk '{printf("%.1f%%"), $1 + $3}')
LB=$(who -b | awk '$1 == "system" {print $3 " " $4}')
LVMT=$(lsblk | grep "lvm" | wc -l)
LVMU=$(if [ $LVMT -eq 0 ]; then echo no; else echo yes; fi)
CTCP=$(cat /proc/net/sockstat{,6} | awk '$1 == "TCP:" {print $3}')
ULOG=$(users | wc -w)
IP=$(hostname -I)
MAC=$(ip link show | awk '$1 == "link/ether" {print $2}')
CMDS=$(journalctl _COMM=sudo | grep COMMAND | wc -l)
wall "#Architecture: $ARC
#CPU physical: $PCPU
#vCPU: $VCPU
#Memory Usage: $URAM/${FRAM}MB ($PRAM%)
#Disk Usage: $UDISK/${FDISK}Gb ($PDISK%)
#CPU load: $CPUL
#Last boot: $LB
#LVM use: $LVMU
#Connexions TCP: $CTCP ESTABLISHED
#User log: $ULOG
#Network: IP $IP ($MAC)
#Sudo: $CMDS cmd"