crontab运行的一些信息,会发邮件给创建crontab的用户,如:
Subject: Output from cron job sh ~/log/000002/nnn_back.sh >/dev/pts/0, nnn@nnnn2, exit status 127 Cron Environment: SHELL = PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/jdk/jre/bin:/usr/jdk/bin:/opt/tomcat/bin CRONDIR=/var/spool/cron/crontabs ATDIR=/var/spool/cron/atjobs LOGNAME=zzz HOME=/home/zzz Your "cron" job executed on nnnn2 on Wed Apr 16 15:16:00 BEIDT 201
邮件的此段就指出crontab执行脚本时使用的默认环境变量,可以看出此变量与用户log in后的环境变量有很大不同,为了脚本正常运行,可以将用户的.profile文件加入定时执行的脚本。
#!/usr/bin/ksh . ~/.profile
注意,用.的方式执行.profile文件很关键,若直接执行.profile或用sh 执行.profile,则.profile 作为一个脚 本执行完毕后,不会改变用户环境的变量。当然不执行.profile而在脚本中手动设置各环境变量也是一种办法,不过繁琐一些。
crontab -e编辑时:
* * * * * cmd 6列分别表示:分钟 小时 天 月 周天(周一,周三等) 命令
*表示每(分钟/小时/天等)都执行一次。
若0 5 * * * echo “ggggg” >/dev/console
表示每天5点0分在控制台上显示ggggggg
若你用远程终端,则用tty显示终端号,如/dev/pts/0等代替/dev/console即可。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/547.html