chmod u+x bkDatabaseName.sh
定时任务:
crontab -e
41 20 * * * /bin/bash /data/temp/bkDatabaseName.sh
mysql sh文件中
mysqldump -uroot -proot testsjk > /data/testsjk -bak/`date +%Y-%m-%d_%H%M%S`.sql
oracle的话
expdp user/user dumpfile=`date +%Y-%m-%d_%H%M%S`.dmp directory=DATA_PUMP_DIR
定时任务大概是2分钟生效,测试的时候时间搞长一点 3-5分钟
http://blog.csdn.net/testcs_dn/article/details/48829785
1. linux
看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察
2. unix
在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。
3. mail任务
在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root搜索 即可查看最近的crontab执行情况。
用oracle账户加crontab 定时任务,会有问题,因为crontab运行的时候只会使用一些基本的环境变量,oracle的环境变量没有。需要加一下
#!/bin/sh
filename=`date +%Y-%m-%d_%H%M%S`
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
echo $ORACLE_HOME
/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/expdp 用户名/密码 DUMPFILE=test-auto-$filename.dmp DIRECTORY=bakdirectory
刚开始加了环境变量也没用,很郁闷,脚本中打印都出来了。后面加上一行#!/bin/sh 以为是这个问题导致的,结果加上后报错 /bin/sh^M: bad interpreter: No such file or directory,后面通过 sed -i 's/\r//' bakoracle.sh 解决 因为文件我是从windows上复制过去的,改为unix的格式,空格什么的对应转换
参考http://www.pc811.com/6/1/26295.html