方法1:利用脚本调取脚本方式
[root@crushlinux ~]# crontab -e
00 17 1 * * /opt/cron.sh
[root@crushlinux ~]# vim /opt/cron.sh
echo "30 17 $(cal | awk 'NR==3{print $NF}') $(date +%m) * /opt/shell.sh" >> /var/spool/cron/root
方法2:获取每月第一个周日的日期与当天日期进行判断
[root@crushlinux ~]# crontab -e
30 17 * * 6[ $(date +%d) -eq $(cal | awk 'NR==3{print $NF}') ] && /opt/shell.sh
方法3:利用日期范围形式(取巧)
[root@crushlinux ~]# crontab -e
30 17 * * 6[ $(date +%d) -lt 7 ] && /opt/shell.sh