需求:需要每一天对数据库做一个备份,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任务不执行问题处理的更多相关文章

  1. linux系统的任务计划crontab使用详解

    linux系统的任务计划crontab使用详解 其实大部分系统管理工作都是通过定期自动执行某一个脚本来完成的,那么如何定期执行某一个脚本呢?这就要借助linux的cron功能了. 关于cron任务计划 ...

  2. Linux下的crontab定时、执行任务命令详解 oracle 自动备份

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为&qu ...

  3. Linux 下用 crontab 设置定时执行python 程序

    Linux 下用 crontab 设置定时执行python 程序 方法/步骤   1,先大概了解crontab,/etc/crontab 就是crontab 的配置文件. crontab命令详解可以查 ...

  4. shell实现增加删除Linux系统用户脚本(密码为随机)

    README shell环境下运行脚本,根据需求选择相应的功能. List \t\t create the userlist 这一步是必须执行的,脚本会识别本地当前目录下的文件 Useradd \t\ ...

  5. Linux系统用户/用户组/文件权限相关

    目录一.Linux系统用户/用户组权限相关二.Linux系统文件权限相关 一.Linux系统用户/用户组权限相关 .命令:usermod 用法:usermod [-agGus] user args ‘ ...

  6. 重设windows10中的sub linux系统用户密码

    原文:重设windows10中的sub linux系统用户密码 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/haiyoung/article/detai ...

  7. linux系统用户管理(一)

    Linux系统用户管理1.用户管理*****2.Linux用户命令****3.用户创建的原理***4.密码管理***5.组命令管理**6.身份切换*****7.sudo提升权限***** 我们现在所使 ...

  8. 实验三:Linux系统用户管理及VIM配置

    项目 内容 这个作业属于哪个课程 班级课程的主页链接 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043133-木腾飞 学习目标 1.学习Linux系统用户管理2.学习vim使用及配置 实 ...

  9. Linux系统根目录下各文件夹介绍

    参考自:[1]Linux 系统根目录下各个文件夹的作用 https://www.cnblogs.com/jiangfeilong/p/10538795.html[2]了解Linux根目录"/ ...

随机推荐

  1. Codeforces Round #283 (Div. 2) C. Removing Columns 暴力

    C. Removing Columns time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. C# 7.0特性与vs2017

    下面是关于在C#7.0语言中计划功能的说明.其中大部分功能在Visual Studio “15” Preview 4中能运行.现在是最好的试用时期,请记录下你们的想法. C#7.0语言增加了许多的新功 ...

  3. MessasgePack:一个小巧高效的序列化方式

    MessagePack是一种高效二进制序列化格式.可以在多种语言中进行快速数据交换,比如JSON格式等.它比Json更加小巧,更加高效,可以用于一些结构化数据存储 ,非常适合适用于消息总线,Memor ...

  4. Hello World on Impala

    Cloudera Impala 官方教程 <Impala Tutorial>,解说了Impala一些基本操作,但操作步骤前后缺少连贯性,本文节W选<Impala Tutorial&g ...

  5. 优化中的subgradient方法

    哎.刚刚submit上paper比較心虚啊.无心学习.还是好好码码文字吧. subgradient介绍 subgradient中文名叫次梯度.和梯度一样,全然能够多放梯度使用.至于为什么叫子梯度,是由 ...

  6. C#中数据库连接的几种方式

    [转载]原文出处http://blog.163.com/ny_lonely/blog/static/188924273201161112931892/   1.配置文件链接. 利用VS.NET开发平台 ...

  7. Unity3d操作的一些技巧知识点和BUG解决方案

    自己记录一些东西,转载请良心注明出处.     1.如何同时打开两个UNITY3D项目. 有时候需要对比,或者需要添加另一个项目的某资源到目前项目,同时打开两个项目看起来会比较明了.如果直接打开的话, ...

  8. 各种语言的注释总结--from wiki

    Comments can be classified by: style (inline/block) parse rules (ignored/interpolated/stored in memo ...

  9. js获取本机mac地址,IP地址,计算机名

    <!DOCTYPE HTML> <html> <head> <title>js获取本机mac地址,IP地址,计算机名</title> < ...

  10. python——获取数据类型:type()、isinstance()的使用方法:

    python——获取数据类型   在python中,可使用type()和isinstance()内置函数获取数据类型 如: (1)type()的使用方法: >>> a = '230' ...