Crontab的用法
2004-11-27 06:07
483 查看
Crontab的用法
Crontab命令使用的文件具体位置: /Var/Spool/Cron/Crontabs 目录下,每个用户都有其对应的名字,比如,root用户的文件为root.
上海霍富root用户的Cron是:
00 02 * * 1-5 /usr/sysadm/dailybackup.sh > /uf/logs/dailybackup.log 2>&1
00 03 * * 1-5 find /u01/app/oracle/admin/prod/archive -name "*.ARC" -mtime +4 -exec rm {} /;
【解释】
第一行的意思是,每个周的周一到周五的凌晨2点,系统会自动执行一个脚本程序dailybackup.sh,并且把执行信息和错误提示信息输出到dailybackup.log这个文件中,是追加形式。
第二行的意思是,在目录/u01/app/oracle/admin/prod/archive中,查找文件名为*.ARC的文件,并删除4天前的文件。
【dailybackup.sh】
#!/bin/sh
####################################################################
set_return()
{
x=$?
if [ $x -ne 0 ]; then
echo "EXIT CODE: $x"
rval=1
fi
}
# Delete at first all unnecessary files:
# /uf/SYS/RES/jcs/reorganize.sh
#
su - oracle -c "/u01/app/oracle/product/8.0.6/bin/dbshut"
su - oracle -c "/u01/app/oracle/product/8.0.6/bin/lsnrctl stop"
set_return
/usr/sysadm/backup.sh
# BackupDate=`date '+%d.%m.%Y'` //可以生成以年月日格式的文件名,如20040217
# cp /uf/logs/rootsich.log /uf/logs/rootsich.log.$BackupDate
# compress /uf/logs/rootsich.log.$assichdat
# Activation of the Unix copy of Oracle database prod to train
# sh /uf/util/autocopy.sh
su - oracle -c "/u01/app/oracle/product/8.0.6/bin/dbstart"
su - oracle -c "/u01/app/oracle/product/8.0.6/bin/lsnrctl start"
set_return
【解释】
这个脚本主要负责,先关闭数据库,然后运行脚本backup.sh进行备份,备份完毕后,启动数据库。
【backup.sh】
#!/bin/sh
####################################################################
# backup.sh
#
####################################################################
fbackup -0 -v -n -i / -f /dev/rmt/0m >/var/adm/fbackupfiles/backup.log 2>&1
exit_code=$?
exit $exit_code
【解释】
这个脚本就是运行fbackup,进行对根目录/下所有文件进行备份。
Crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:
/usr/var/adm/cron/cron.deny:该文件中所列的用户不允许使用Crontab命令;
/usr/var/adm/cron/cron.allow:该文件中所列的用户允许使用Crontab命令;
Crontab命令的格式为:crontab –l|-v|-r|-e [username],其参数含义如表一:
用户所建立的Crontab文件存于/var/spool/cron/crontabs中,其文件名与用户名一致。
它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,
格式如下:* * * * * <command>
其时间段的含义如表二:
例:如果用户的Crontab文件的内容是:29 19 * * * echo its dinner time,则系统每天的19:29显示‘its dinner time’。
附:当这六段什么都不设的话就是程序在1秒中执行一次
我在用CRON的时候把“01 * * * * 命令1”当成了是每一秒中程序执行一次命令一。这个想法误导了我很久,其实这句话的意思是每个小时的第一分钟程序执行一次。
Crontab命令使用的文件具体位置: /Var/Spool/Cron/Crontabs 目录下,每个用户都有其对应的名字,比如,root用户的文件为root.
上海霍富root用户的Cron是:
00 02 * * 1-5 /usr/sysadm/dailybackup.sh > /uf/logs/dailybackup.log 2>&1
00 03 * * 1-5 find /u01/app/oracle/admin/prod/archive -name "*.ARC" -mtime +4 -exec rm {} /;
【解释】
第一行的意思是,每个周的周一到周五的凌晨2点,系统会自动执行一个脚本程序dailybackup.sh,并且把执行信息和错误提示信息输出到dailybackup.log这个文件中,是追加形式。
第二行的意思是,在目录/u01/app/oracle/admin/prod/archive中,查找文件名为*.ARC的文件,并删除4天前的文件。
【dailybackup.sh】
#!/bin/sh
####################################################################
set_return()
{
x=$?
if [ $x -ne 0 ]; then
echo "EXIT CODE: $x"
rval=1
fi
}
# Delete at first all unnecessary files:
# /uf/SYS/RES/jcs/reorganize.sh
#
su - oracle -c "/u01/app/oracle/product/8.0.6/bin/dbshut"
su - oracle -c "/u01/app/oracle/product/8.0.6/bin/lsnrctl stop"
set_return
/usr/sysadm/backup.sh
# BackupDate=`date '+%d.%m.%Y'` //可以生成以年月日格式的文件名,如20040217
# cp /uf/logs/rootsich.log /uf/logs/rootsich.log.$BackupDate
# compress /uf/logs/rootsich.log.$assichdat
# Activation of the Unix copy of Oracle database prod to train
# sh /uf/util/autocopy.sh
su - oracle -c "/u01/app/oracle/product/8.0.6/bin/dbstart"
su - oracle -c "/u01/app/oracle/product/8.0.6/bin/lsnrctl start"
set_return
【解释】
这个脚本主要负责,先关闭数据库,然后运行脚本backup.sh进行备份,备份完毕后,启动数据库。
【backup.sh】
#!/bin/sh
####################################################################
# backup.sh
#
####################################################################
fbackup -0 -v -n -i / -f /dev/rmt/0m >/var/adm/fbackupfiles/backup.log 2>&1
exit_code=$?
exit $exit_code
【解释】
这个脚本就是运行fbackup,进行对根目录/下所有文件进行备份。
Crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:
/usr/var/adm/cron/cron.deny:该文件中所列的用户不允许使用Crontab命令;
/usr/var/adm/cron/cron.allow:该文件中所列的用户允许使用Crontab命令;
Crontab命令的格式为:crontab –l|-v|-r|-e [username],其参数含义如表一:
参数名称<?XML:NAMESPACE PREFIX = O /> | 含义 |
-l | 显示用户的Crontab文件的内容 |
-v | 显示用户的Crontab文件的内容及其提交的时间,只适用于Compaq系列 |
-r | 从Crontab目录中删除用户的Crontab文件 |
-e | 编辑用户的Crontab文件 |
它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,
格式如下:* * * * * <command>
其时间段的含义如表二:
段 | 含义 | 取值范围 |
第一段 | 代表分钟 | 0—59 |
第二段 | 代表小时 | 0—23 |
第三段 | 代表日期 | 1—31 |
第四段 | 代表月份 | 1—12 |
第五段 | 代表星期几,0代表星期日 | 0—6 |
附:当这六段什么都不设的话就是程序在1秒中执行一次
我在用CRON的时候把“01 * * * * 命令1”当成了是每一秒中程序执行一次命令一。这个想法误导了我很久,其实这句话的意思是每个小时的第一分钟程序执行一次。
相关文章推荐
- 小议sqlserver数据库主键选取策略
- oracle date 类型字段的处理方法
- oracle常用sql查询语句部分集合(图文)
- 千年零一虫
- ORACLE9i连接SYBASE的透明网关的配置
- c#接简单数据库操作类
- PHP 的 MySQL 操作类,跟手册上的函数一样用,但是更方便了。多说无益,看了就知道了。
- 在线等,一个十万火急的问题
- 独具量身定做特色的管理软件--数据大师
- oracle中的分页
- SELECT TOP N 问题
- 关于数据库备份的问题!
- 備份服務器端SQL SERVER數據庫至本地目錄
- Struts tags (2) ----Bean(1)
- Struts tags (4) ----Html(2)
- 关于目前的方向
- sql server7.0数据库恢复