linux系统用户下的crontab任务不执行问题处理
来源:互联网 发布:学琵琶 知乎 编辑:程序博客网 时间:2024/05/18 07:05
需求:需要每一天对数据库做一个备份,oracle数据库,linux系统。
备份命令采用最简单的导出\导入。
首先确认服务器是否开启任务计划服务,只有root用户才能对crond服务进行开启和关闭
[root@enfo124 ~]# service crond status
crond (pid 1758) is running...
[root@enfo124 ~]# service crond stop
Stopping crond: [ OK ]
[root@enfo124 ~]# su - cognos
[cognos@enfo124 ~]$ service crond status
crond is stopped
[cognos@enfo124 ~]$ su - root
[root@enfo124 ~]# service crond start
Starting crond: [ OK ]
[root@enfo124 ~]# service crond status
crond (pid 2805) is running...
[root@enfo124 ~]# su - cognos
[cognos@enfo124 ~]$ service crond status
crond (pid 2805) is running...
最初sh文件内容为
------------------------------------------------------------
#!/bin/bash
expdp username/password@enforc directory=kettledb dumpfile=enforc_$(date +%Y%m%d%H%M).dmp logfile=enforc_$(date +%Y%m%d%H%M).log
-----------------------------------------------------------
文件名字与路径
/home/oracle/bin/export_enforc.sh
部署开始,切换至oralce用户,查看oracle用户的crontab 计划(crontab -l)。进入任务计划的编辑模式(crontab -e)
添加入以下行:
30 18 * * * /home/oracle/bin/export_enforc.sh
每天18:30分执行export_enforc.sh文件,结果不执行,手工赋值执行/home/oracle/bin/export_enforc.sh是可以的。
于是看了前辈写的sh后说执行的环境不对于是加入以下几行:
#!/bin/bash
if [ -f ~/.bash_profile ];
then
. ~/.bash_profile
fi
expdp username/password@enforc directory=kettledb dumpfile=enforc_$(date +%Y%m%d%H%M).dmp logfile=enforc_$(date +%Y%m%d%H%M).log
执行命令:
[oracle@enfo212 ~]$ cd ~/
[oracle@enfo212 ~]$ pwd
/home/username
----------可以看出来~/代表用户家目录/home/username。
. 文件= bash 文件 (执行shell文件)
由此可以看出-f查找如果目录存在这个系统环境文件则执行,建造一个shell环境,每个用户都有自己的.bash_profile
再次部署到crontab里面可以看到:
随便部署一个将要发生的时间点,任务被执行,这样就每天在这个时间点就对数据库enforc坐了导出的工作
具体为什么加入哪些代码?可以参考 /home/username/.bash_profile 文件
PS:总结crontab任务不执行可以从这些方面入手
1:请确保手工可以执行该文件(给sh文件增加X权限,看文件格式是否为unix→ set ff? →set ff=unix)
2:确认开始crond服务(service crond status/start/stop)
3: 确认给sh文件制定bash环境
if [ -f ~/.bash_profile ];
then
. ~/.bash_profile
fi
- linux系统用户下的crontab任务不执行问题处理
- linux系统用户下的crontab任务不执行问题处理
- linux系统用户下的crontab任务不执行问题处理
- linux下crontab 任务不执行的可能原因总结
- crontab linux 定时任务不执行问题
- linux 系统下定时执行任务 crontab
- Linux系统下的定时任务Crontab
- linux/unix下执行crontab定时任务中文乱码问题
- linux下crontab定时执行java程序,java程序不执行的问题
- linux下crontab定时执行java程序,java程序不执行的问题
- crontab任务不执行
- linux下定时执行任务的方法 crontab 用法说明
- linux下crontab定时执行任务的方法
- linux下定时执行任务的方法 crontab
- linux下定时执行任务的方法 crontab 用法说明
- linux下定时执行任务的方法 crontab 用法说明
- Linux下的crontab定时执行任务命令详解
- Linux下的crontab定时执行任务命令详解
- JavaScript (一)
- Android中Java和JavaScript交互
- deprecated preg_replace the e modifier is deprecated use preg_replace_callback instead in
- Sublime Text 3 : keyboard shortcut to reveal file in finder
- js面试题--js的继承
- linux系统用户下的crontab任务不执行问题处理
- 使用Selenium 和Junit 进行WEB功能测试
- 【分享】4412开发板-嵌入式Linux开发需要掌握的基础知识和技能
- Andorid 混淆后JS的回调方法不起作用了
- epoll的LT和ET使用EPOLLONESHOT
- GRE写作必备句型
- tableView//collectionView加载时的动画
- 开启底层IT民工之旅
- 教你如何使KEIL中同时具有51和ARM的编译功能