`

Linux 自动调度问题

阅读更多
crontab -l 如下:
00 23 * * * /home/pmi/shell/I_SHL_SHE_BASE.sh>/home/pmi/log/cron_base.log 2 >&1
50 23 * * * /home/pmi/shell/I_SHL_SHE_MID.sh>/home/pmi/log/cron_mid.log 2 >&1

配置文件env.cfg:

pmi_dbuser=pmi78_user_test
pmi_dbpwd=pmi78_user_test
pmi_dbname=pmi
pmi_bworkdate=20100108
pmi_mworkdate=20100108
pmi_bstatus=0
pmi_mstatus=0
pmi_logpath=/home/pmi/log


如下是I_SHL_SHE_BASE.sh中开始的一段脚本

###########################步骤1:初始化env.cfg文件及Job##############################

step1=`sh $shellpath/I_SHL_INIT.sh>step1.log`
st1=`grep 'flag' step1.log |awk -F"=" '{print $2}'`
if [ "$st1" -eq "0" ]
then
    echo "初始化env.cfg文件成功!"
    rm step1.log
else
    echo "初始化env.cfg文件失败!"
    rm step1.log
    exit -1;
fi

如下是I_SHL_INIT.sh:
#!/bin/bash
#********************************************************************************
#       Function:I_SHL_INIT.sh
#       Inputs:
#       Author:  XX
#       Date:    2009-12-20
#       History:
#********************************************************************************
shellpath=/home/pmi/shell

logpath=`grep 'pmi_logpath' $shellpath/env.cfg |awk -F"=" '{print $2}'`
dbuser=`grep 'pmi_dbuser' $shellpath/env.cfg |awk -F"=" '{print $2}'`
dbpwd=`grep 'pmi_dbpwd'  $shellpath/env.cfg |awk -F"=" '{print $2}'`
dbname=`grep 'pmi_dbname' $shellpath/env.cfg |awk -F"=" '{print $2}'`
logname="$logpath/init.log"

sqlplus -S ${dbuser}/${dbpwd}@${dbname} <<!>$logname
    select pmi_key||'='||pmi_value from pmi_bb_dd_ddcsb;
    show sqlcode;
    quit;
!

#结果处理

sqlcode=`grep 'sqlcode' $logname |awk -F" " '{print $2}'`
if [ -f "$logname"  -a  $sqlcode -eq "0" ]  
then
    pmi_dbuser=`grep 'dbuser' $logname |awk -F"=" '{print $2}'`
    pmi_dbpwd=`grep 'dbpwd' $logname |awk -F"=" '{print $2}'`
    pmi_dbname=`grep 'dbname' $logname |awk -F"=" '{print $2}'`
    pmi_bworkdate=`grep 'bworkdate' $logname |awk -F"=" '{print $2}'`
    pmi_mworkdate=`grep 'mworkdate' $logname |awk -F"=" '{print $2}'`
    pmi_bstatus=`grep 'bstatus' $logname |awk -F"=" '{print $2}'`
    pmi_mstatus=`grep 'mstatus' $logname |awk -F"=" '{print $2}'`
    pmi_logpath=`grep 'logpath' $logname |awk -F"=" '{print $2}'`
    rm $shellpath/env.cfg
    echo "pmi_dbuser=$pmi_dbuser">$shellpath/env.cfg
    echo "pmi_dbpwd=$pmi_dbpwd">>$shellpath/env.cfg
    echo "pmi_dbname=$pmi_dbname">>$shellpath/env.cfg
    echo "pmi_bworkdate=$pmi_bworkdate">>$shellpath/env.cfg
    echo "pmi_mworkdate=$pmi_mworkdate">>$shellpath/env.cfg
    echo "pmi_bstatus=$pmi_bstatus">>$shellpath/env.cfg  
    echo "pmi_mstatus=$pmi_mstatus">>$shellpath/env.cfg
    echo "pmi_logpath=$pmi_logpath">>$shellpath/env.cfg
    rm $logname
    echo "flag=0"
    exit 0;
else
#  rm $logname;
    echo "flag=-1"
    exit -1;
fi
问题是每次自动调度我都在日志文件中看到:初始化env.cfg文件失败。  仔细检查了一下文件中的数据库、用户名、密码、日志路径都没错。困扰了很久一直找不到原因!
分享到:
评论

相关推荐

    Linux进程调度完整版

    Linux进程调度是操作系统核心部分,负责管理系统的CPU执行时间,确保所有进程都能公平地获取资源。在Linux 2.6.23内核版本中,引入了Completely Fair Scheduler(CFS)作为主要的调度器,取代了原有的调度策略。在...

    Linux 2.6任务调度器及其重要属性

    Linux 2.6调度器引入了SMP负载均衡,自动在多个CPU之间迁移任务,以避免某个CPU过载而其他CPU空闲的情况。这显著提升了多处理器系统的整体效率,使得所有CPU资源都能被充分利用。 5. **任务抢占**: 预占机制允许...

    基于Linux的实时调度机制的研究

    文章首先分析了当前Linux内核调度机制存在的问题,随后介绍了实时Linux的基本思想及其设计原理,最后详细阐述了如何实现面向应用的调度框架以及提高内核抢占性的方法。 #### Linux的进程调度机制简要分析 Linux...

    Linux内核调度原理(英文)

    3. 实时系统:Linux内核调度原理广泛应用于实时系统中,例如控制系统、导航系统和自动化系统等。 Linux内核调度原理是Linux操作系统中最核心的组件之一,它能够高效地分配系统资源,确保系统的高效运行和公平性。

    Linux的调度命令1

    ### Linux的调度命令详解:at命令 #### 一、引言 在Linux系统管理中,自动化任务处理是一项非常重要的技能。其中一个常用的工具是`at`命令,它允许用户在特定的时间点执行预定的命令或者脚本。这不仅提高了效率,还...

    Linux调度命令2

    ### Linux Cron调度命令详解 #### 一、Cron简介 Cron是Linux系统中的一个非常重要的后台服务,它主要用于管理周期性的重复任务。通过cron,我们可以轻松地安排各种任务自动执行,比如定时备份数据、定时清理日志...

    linux自动删除文件

    "Linux自动删除文件"这个主题涉及到使用Shell脚本来定期或按照特定条件清理无用的文件,以保持系统的整洁和高效运行。下面我们将深入探讨如何创建和使用Shell脚本来实现这一功能。 首先,让我们了解什么是Shell脚本...

    基于Linux系统中进程调度分析.pdf

    被动调度则是由于中断处理、系统调用返回、新进程产生、优先级改变、资源可用唤醒进程或时间片耗尽等情况,自动触发调度。 【调度策略】Linux针对不同类型的进程采用了不同的调度策略。例如,它结合了优先级调度,...

    Linux实时调度算法研究.pdf

    本文将从问题模式出发,探讨Linux实时调度算法的研究和分类,旨在为实际应用提供更具针对性的指导。 首先,我们要理解实时调度算法的重要性。在实时系统中,任务的完成时间至关重要,超过了预设的时间限制可能导致...

    嵌入式Linux实时调度算法及应用.pdf

    1. 嵌入式 Linux 实时调度算法的设计目标是解决 Linux 2.6 内核在嵌入式应用中的实时性不足问题。 2. 该算法引入了截止期、带宽等属性,以提高实时进程的调度性能。 3. 该算法设计了实时进程插入、时钟中断、实时...

    Linux中任务调度的配置与学习

    在Linux操作系统中,任务调度是自动化执行特定任务的关键特性,主要通过`cron`守护进程实现。`cron`是一个后台服务,负责定期执行预定的任务,这些任务通常被称为计划任务或者定时任务。本文将深入探讨`cron`进程...

    Linux内核的进程调度原理及改进算法研究.pdf

    在处理高实时性需求的应用场景中,如闭环控制系统,Linux内核的传统进程调度机制存在一定的局限性。因此,对Linux内核的进程调度原理及其改进算法的研究具有重要的意义。本文将深入探讨Linux内核进程调度的基本原理...

    linux下 多线程模拟进程调度多线程模拟进程调度

    在Linux操作系统中,多线程模拟进程调度是一个深入理解操作系统内核和并发编程的重要主题。进程调度是操作系统核心的关键组成部分,负责决定哪个进程应该获得CPU的执行权,以及何时进行切换。而通过多线程模拟进程...

    在Linux系统中IO调度的选择

    ### 在Linux系统中IO调度的选择 #### I/O调度概述 在Linux系统中,I/O调度算法扮演着极其重要的角色,特别是在多个进程同时竞争磁盘I/O资源时。它负责优化请求的顺序和时机,以达到最佳的整体I/O性能。本文将详细...

    linux与UNIX调度算法比较分析.docx

    非抢占式进程调度时机分为两种情况:进程自动放弃CPU和进程由核心态转入用户态。 二、Linux进程调度原理 Linux进程调度原理中,调度程序在选择进程时,会根据四个因素:policy、priority、counter、rt_priority来...

    linux进程调度与进程切换1

    在这些情况下,调度由系统自动执行,不依赖于进程的行为。`schedule()`, `do_timer()`和`ret_from_sys_call()`三个函数共同参与了这一过程。`schedule()`负责选择新进程,`do_timer()`更新系统时间,`ret_from_sys_...

    嵌入式Linux实时调度算法的优化设计.pdf

    【嵌入式Linux实时调度算法的优化设计】 嵌入式Linux在近年来的计算机时代中扮演着重要的角色,尤其是在2006年的技术发展中,Linux 2.6内核的发布为嵌入式系统和实时系统带来了显著的进步。Linux 2.6内核引入了抢占...

    面向工程应用的调度自动化系统LINUX培训项目研究.pdf

    总之,面向工程应用的调度自动化系统LINUX培训项目旨在解决理论与实践脱节的问题,通过精心设计的培训流程,使学员不仅掌握理论知识,更能将这些知识应用到实际工作中,提升整个系统的运行效率和安全性。

Global site tag (gtag.js) - Google Analytics