精华内容
下载资源
问答
  • linux 注释crontab文件

    千次阅读 2018-06-01 10:38:45
    2014年07月31日 10:22:59阅读数:20211 原来,在Linux下写了很多crontab,来定时执行某些任务,现在有以下需求:需求:是要注释某些crontab任务,方法:只要在所要取消的crontab任务前,加'#'即可。e.g.5 4 * * sun ...
    		


    原来,在Linux下写了很多crontab,来定时执行某些任务,

    现在有以下需求:

    需求:是要注释某些crontab任务,

    方法:只要在所要取消的crontab任务前,加'#'即可。

    e.g.

    5 4 * * sun echo "run at 5 after 4 every sunday"  

    注释:

    #5 4 * * sun echo "run at 5 after 4 every sunday"  

    就这么简单。

    https://blog.csdn.net/yuan882696yan/article/details/38312879

    展开全文
  • Linux crontab

    2019-04-08 17:22:00
    创建定时任务 crontab -e 列出所有的定时任务 crontab -l 删除指定定时任务 ...crontab -e 继续编辑 # 可以注释掉指定的定时任务 删除所有的定时任务 crontab -r crontab 的基本组成 * * * * *...

    创建定时任务

    crontab -e

    列出所有的定时任务

    crontab -l

    删除指定定时任务

    crontab -e 继续编辑 # 可以注释掉指定的定时任务

    删除所有的定时任务

    crontab -r

     

    crontab 的基本组成

     *             *                *                 *                 *          command

    分         小时          

     

    分:1-59,每10分钟 */10

       时: 0-23,*/2

         日:1-31

           月:1-12

             星期:0-6   星期天是0

     

    Examples:

    每天9:30       

    30  21  *   *   *  cmd01

    每月1号11号21号的2:30

    30  2  1,11,21  *  *  cmd02      单独的用逗号隔开

    每周六周日1:45分

    45  1  *  *  6,0  cmd03

    每天20:00 到23:00,每半个小时执行一次

    0,30 20-23 * * * cmd04                连续的可以用-

    每小时执行一次

    *  */1  *  *  *  cmd05

     

     

     

     

     

     

     

     

     

     

               

     

    转载于:https://www.cnblogs.com/pickKnow/p/10671872.html

    展开全文
  • Linux 运维脚本 crontab

    2019-07-12 18:56:35
    Linux 运维脚本 注意事项 1)开头加解释器:#!/bin/bash 2)语法缩进,使用四个空格;多加注释说明。 3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。 4)默认变量是全局的,在...

                                                 Linux 运维脚本

    注意事项

    1)开头加解释器:#!/bin/bash

    2)语法缩进,使用四个空格;多加注释说明。

    3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。

    4)默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。

    5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。

    6)写脚本一定先测试再到生产上。

     

     

    crontab 脚本

    crontab  -e

    每隔10分钟

    */10 * * * * /bin/sh /server/middleware/logstash-5.1.1/bin/writefile.sh

     

    /etc/init.d/crond restart

    -bash: /etc/init.d/crond: No such file or directory

    You have new mail in /var/spool/mail/root

     

    /bin/systemctl restart crond.service

    /etc/init.d/crond status

    /bin/systemctl status crond.service

    https://www.xuebuyuan.com/2163095.html

    查看WAR包版本

    #!/bin/bash
    MN=""
    NV=""
    for i in {9008..9014}
    do
        cd /CPCN/Tomcat${i}/webapps
        for module in `ls *.war`
        do
    	eval MN=${module%.*}
    	for appv in `cat ${MN}/WEB-INF/classes/version.properties | grep APP_VERSION`
    	do
    	    eval MV=${appv#*=}
    	done
    	echo -e Tomcat${i}"\t"${MN}"\t"${MV}
        done
    done

     监控CPU、内存和硬盘利用率

    CPU

    借助vmstat工具来分析CPU统计信息。

    #!/bin/bash
    DATE=$(date +%F" "%H:%M)
    IP=$(ifconfig eth0 |awk -F '[ :]+' '/inet addr/{print $4}')  # 只支持CentOS6
    MAIL="example@mail.com"
    if ! which vmstat &>/dev/null; then
        echo "vmstat command no found, Please install procps package." 
        exit 1
    fi
    US=$(vmstat |awk 'NR==3{print $13}')
    SY=$(vmstat |awk 'NR==3{print $14}')
    IDLE=$(vmstat |awk 'NR==3{print $15}')
    WAIT=$(vmstat |awk 'NR==3{print $16}')
    USE=$(($US+$SY))
    if [ $USE -ge 50 ]; then
        echo "
        Date: $DATE
        Host: $IP
        Problem: CPU utilization $USE
        " | mail -s "CPU Monitor" $MAIL
    fi

     

    内存

    #!/bin/bash
    DATE=$(date +%F" "%H:%M)
    IP=$(ifconfig eth0 |awk -F '[ :]+' '/inet addr/{print $4}')  
    MAIL="example@mail.com"
    TOTAL=$(free -m |awk '/Mem/{print $2}')
    USE=$(free -m |awk '/Mem/{print $3-$6-$7}')
    FREE=$(($TOTAL-$USE))
    # 内存小于1G发送报警邮件
    if [ $FREE -lt 1024 ]; then
        echo "
        Date: $DATE
        Host: $IP
        Problem: Total=$TOTAL,Use=$USE,Free=$FREE
        " | mail -s "Memory Monitor" $MAIL
    fi

     

    硬盘

    #!/bin/bash
    DATE=$(date +%F" "%H:%M)
    IP=$(ifconfig eth0 |awk -F '[ :]+' '/inet addr/{print $4}')  
    MAIL="example@mail.com"
    TOTAL=$(fdisk -l |awk -F'[: ]+' 'BEGIN{OFS="="}/^Disk \/dev/{printf "%s=%sG,",$2,$3}')
    PART_USE=$(df -h |awk 'BEGIN{OFS="="}/^\/dev/{print $1,int($5),$6}')
    for i in $PART_USE; do
        PART=$(echo $i |cut -d"=" -f1)
        USE=$(echo $i |cut -d"=" -f2)
        MOUNT=$(echo $i |cut -d"=" -f3)
        if [ $USE -gt 80 ]; then
            echo "
            Date: $DATE
            Host: $IP
            Total: $TOTAL
            Problem: $PART=$USE($MOUNT)
            " | mail -s "Disk Monitor" $MAIL
        fi
    done

     

    批量主机磁盘利用率监控

    前提监控端和被监控端SSH免交互登录或者密钥登录。

    写一个配置文件保存被监控主机SSH连接信息,文件内容格式:IP User Port

    #!/bin/bash
    HOST_INFO=host.info
    for IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); do
        USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO)
        PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO)
        TMP_FILE=/tmp/disk.tmp
        ssh -p $PORT $USER@$IP 'df -h' > $TMP_FILE
        USE_RATE_LIST=$(awk 'BEGIN{OFS="="}/^\/dev/{print $1,int($5)}' $TMP_FILE)
        for USE_RATE in $USE_RATE_LIST; do
            PART_NAME=${USE_RATE%=*}
            USE_RATE=${USE_RATE#*=}
            if [ $USE_RATE -ge 80 ]; then
                echo "Warning: $PART_NAME Partition usage $USE_RATE%!"
            fi
        done
    done

    检查网站可用性

    检查URL可用性

    方法1:
    check_url() {
        HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $1)
        if [ $HTTP_CODE -ne 200 ]; then
            echo "Warning: $1 Access failure!"
        fi
    }
    方法2:
    check_url() {
    if ! wget -T 10 --tries=1 --spider $1 >/dev/null 2>&1; then  
    #-T超时时间,--tries尝试1次,--spider爬虫模式
            echo "Warning: $1 Access failure!"
        fi
    }

    使用方法:check_url www.baidu.com

    判断三次URL可用性

    思路与上面检查主机存活状态一样。

    方法1:利用循环技巧,如果成功就跳出当前循环,否则执行到最后一行
    #!/bin/bash  
    check_url() {
        HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $1)
        if [ $HTTP_CODE -eq 200 ]; then
            continue
        fi
    }
    URL_LIST="www.baidu.com www.agasgf.com"
    for URL in $URL_LIST; do
        check_url $URL
        check_url $URL
        check_url $URL
        echo "Warning: $URL Access failure!"
    done
    方法2:错误次数保存到变量
    #!/bin/bash  
    URL_LIST="www.baidu.com www.agasgf.com"
    for URL in $URL_LIST; do
        FAIL_COUNT=0
        for ((i=1;i<=3;i++)); do
            HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL)
            if [ $HTTP_CODE -ne 200 ]; then
                let FAIL_COUNT++
            else
                break
            fi
        done
        if [ $FAIL_COUNT -eq 3 ]; then
            echo "Warning: $URL Access failure!"
        fi
    done
    方法3:错误次数保存到数组
    #!/bin/bash  
    URL_LIST="www.baidu.com www.agasgf.com"
    for URL in $URL_LIST; do
        NUM=1
        while [ $NUM -le 3 ]; do
            HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL)
            if [ $HTTP_CODE -ne 200 ]; then
                FAIL_COUNT[$NUM]=$IP  #创建数组,以$NUM下标,$IP元素
                let NUM++
            else
                break
            fi
        done
        if [ ${#FAIL_COUNT[*]} -eq 3 ]; then
            echo "Warning: $URL Access failure!"
            unset FAIL_COUNT[*]    #清空数组
        fi
    done

    检查MySQL主从同步状态

    #!/bin/bash  
    USER=bak
    PASSWD=123456
    IO_SQL_STATUS=$(mysql -u$USER -p$PASSWD -e 'show slave status\G' |awk -F: '/Slave_.*_Running/{gsub(": ",":");print $0}')  #gsub去除冒号后面的空格
    for i in $IO_SQL_STATUS; do
        THREAD_STATUS_NAME=${i%:*}
        THREAD_STATUS=${i#*:}
        if [ "$THREAD_STATUS" != "Yes" ]; then
            echo "Error: MySQL Master-Slave $THREAD_STATUS_NAME status is $THREAD_STATUS!"
        fi
    done

     检查主机存活状态

    方法1:将错误IP放到数组里面判断是否ping失败三次

    #!/bin/bash  
    IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
    for IP in $IP_LIST; do
        NUM=1
        while [ $NUM -le 3 ]; do
            if ping -c 1 $IP > /dev/null; then
                echo "$IP Ping is successful."
                break
            else
                # echo "$IP Ping is failure $NUM"
                FAIL_COUNT[$NUM]=$IP
                let NUM++
            fi
        done
        if [ ${#FAIL_COUNT[*]} -eq 3 ];then
            echo "${FAIL_COUNT[1]} Ping is failure!"
            unset FAIL_COUNT[*]
        fi
    done

    方法2:将错误次数放到FAIL_COUNT变量里面判断是否ping失败三次

    #!/bin/bash  
    IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
    for IP in $IP_LIST; do
        FAIL_COUNT=0
        for ((i=1;i<=3;i++)); do
            if ping -c 1 $IP >/dev/null; then
                echo "$IP Ping is successful."
                break
            else
                # echo "$IP Ping is failure $i"
                let FAIL_COUNT++
            fi
        done
        if [ $FAIL_COUNT -eq 3 ]; then
            echo "$IP Ping is failure!"
        fi
    done

    方法3:利用for循环将ping通就跳出循环继续,如果不跳出就会走到打印ping失败

    #!/bin/bash
    ping_success_status() {
        if ping -c 1 $IP >/dev/null; then
            echo "$IP Ping is successful."
            continue
        fi
    }
    IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
    for IP in $IP_LIST; do
        ping_success_status
        ping_success_status
        ping_success_status
        echo "$IP Ping is failure!"
    done

    检查服务状态

    #!/bin/bash
    PORT_C=$(ss -anu |grep -c 123)
    PS_C=$(ps -ef |grep ntpd |grep -vc grep)
    if [ $PORT_C -eq 0 -o $PS_C -eq 0 ]; then
        echo "内容" | mail -s "主题" dst@example.com
    fi

     检查软件包是否安装

    #!/bin/bash
    if rpm -q sysstat &>/dev/null; then
        echo "sysstat is already installed."
    else
        echo "sysstat is not installed!"
    fi

    批量创建用户

    #!/bin/bash
    DATE=$(date +%F_%T)
    USER_FILE=user.txt
    echo_color(){
        if [ $1 == "green" ]; then
            echo -e "\033[32;40m$2\033[0m"
        elif [ $1 == "red" ]; then
            echo -e "\033[31;40m$2\033[0m"
        fi
    }
    # 如果用户文件存在并且大小大于0就备份
    if [ -s $USER_FILE ]; then
        mv $USER_FILE ${USER_FILE}-${DATE}.bak
        echo_color green "$USER_FILE exist, rename ${USER_FILE}-${DATE}.bak"
    fi
    echo -e "User\tPassword" >> $USER_FILE
    echo "----------------" >> $USER_FILE
    for USER in user{1..10}; do
        if ! id $USER &>/dev/null; then
            PASS=$(echo $RANDOM |md5sum |cut -c 1-8)
            useradd $USER
            echo $PASS |passwd --stdin $USER &>/dev/null
            echo -e "$USER\t$PASS" >> $USER_FILE
            echo "$USER User create successful."
        else
            echo_color red "$USER User already exists!"
        fi
    done

    定义一个颜色输出字符串函数

    方法1:
    function echo_color() {
        if [ $1 == "green" ]; then
            echo -e "\033[32;40m$2\033[0m"
        elif [ $1 == "red" ]; then
            echo -e "\033[31;40m$2\033[0m"
        fi
    }
    方法2:
    function echo_color() {
        case $1 in
            green)
                echo -e "\033[32;40m$2\033[0m"
                ;;
            red)
                echo -e "\033[31;40m$2\033[0m" 
                ;;
            *) 
                echo "Example: echo_color red string"
        esac
    }
    使用方法:echo_color green "test"

     获取随机字符串或数字

    获取随机8位字符串:

    方法1:
    # echo $RANDOM |md5sum |cut -c 1-8
    471b94f2
    方法2:
    # openssl rand -base64 4
    vg3BEg==
    方法3:
    # cat /proc/sys/kernel/random/uuid |cut -c 1-8
    ed9e032c

    获取随机8位数字:

    方法1:
    # echo $RANDOM |cksum |cut -c 1-8
    23648321
    方法2:
    # openssl rand -base64 4 |cksum |cut -c 1-8
    38571131
    方法3:
    # date +%N |cut -c 1-8
    69024815

    cksum:打印CRC效验和统计字节

     

    有些进程杀不掉,叫做僵尸进程

    杀掉僵尸进程

    
    
    1. 查看僵尸进程:
    
    ps -ef | grep defunct
    
    #子进程, 父进程
    
    ps -ef | grep defunct | more
    
    2. 杀死僵尸进程的父进程:
    
    kill -9 PPID

     

    查看是redHat还是centos 

    cat /etc/redhat-release 

     

     

     

     

     

    展开全文
  • Linux 环境一般自带crontab ,在 /etc/crontab 简单的少量任务,可以直接在/etc/crontab 里面添加,任务较多,最好将每日每周每月的定时任务分开,比较好管理及查看。 1.少量简单的任务:vim /etc/crontab cron...

    记录一次简单的Linux定时任务----》每周定时备份数据库结构及数据
    环境:阿里云服务器
    vim 命令:输入i/a 进入输入模式,输入完成后,esc键,退出输入模式,确定无误后,输入“:wq”,保存退出
    Linux 环境一般自带crontab ,在 /etc/crontab
    简单的少量任务,可以直接在/etc/crontab 里面添加,任务较多,最好将每日每周每月的定时任务分开,比较好管理及查看。
    1.少量简单的任务:vim /etc/crontab

    在这里插入图片描述

    cron表达式在文件注释里面也说得很清楚了
    第一个 *: 分钟,值为0-59之间
    第二个 *:小时,值为0-23之间
    第三个 *:日期,值为1-31号
    第四个 *:月份,值为1-12,或月份的英文缩写
    第五个 *:礼拜,值为0-6,礼拜天为0/7,也可以用礼拜的英文缩写表示
    user-name :用户名
    commend to be executed: 执行的内容,可以是Linux命令,或sh脚本

    例子是我编写了一个定时任务,每周五的下午17:10分执行sh脚本

    2.任务较多的时候,可以将任务按照每天每小时。。。分类,将每天的定时任务写在一个文件里面,路径是/etc/cron.d/;
    比喻我在路径下创建一个定时任务的文件,vim /etc/cron.d/testCronEveryMinute,在里面添加定时任务:

    */2 * * * * root echo ‘a’ >>/tmp/test.txt
    在这里插入图片描述

    意思是每两分钟,向test.txt文件输入一个’a’

    然后创建/tmp/test.txt 空白文件,然后输入命令 tail-100f /tmp/test.txt , 持续查看test.txt文件的变化

    在这里插入图片描述
    如上图,证明生效了

    展开全文
  • Linux下的crontab

    2019-04-02 10:25:00
    Ubuntu服务器/var/log下没有cron日志,这里记录一下如何ubuntu server如何查看crontab日志 crontab记录日志 修改rsyslog ...cron.* /var/log/cron.log #将cron前面的注释符去掉 重启rsyslog sudo ...
  • Linux定时任务 crontab

    2018-11-20 18:55:00
    进入编辑模式,删除一行或者注释一行,就可以删除这个定时任务,新建一行就可以添加定时任务了。(如果输入数字的话 键盘右边的数字键 不能用,F1-F8下面横排的数字键才管用) 编辑完之后,按esc, 输入:wq 回车,...
  • linux 定时任务crontab操作 请求php接口

    千次阅读 2018-07-09 08:55:23
    linux默认都安装了crontab,Terminal中执行指令。crontab -l 查看当前用户下的定时任务“crontab -e ”:修改或者新建当前任务( 默认进入crontab任务进行编辑 或者第一次编辑后保存的名字就是crontab),弹出的页面...
  • Linux的cron和crontab

    2016-03-26 13:40:31
    crontab快速注释及撤销注释 先使用crontab -e进行对crontab的编辑操作 $ crontab -e 然后使用vi的如下编辑命令 :%s/^/#/ 就可以将定时执行的任务前面都加上一个'#',进行注释掉。 同样等,某些操作完成后,也...
  • Linux定时任务-Crontab

    2017-06-05 14:24:25
    CRONTAB语法及应用1:查看当前用户的定时任务[oracle@localhost ~]$ crontab -l* * * * * /home/oracle/test.sh >/dev/null 2>&...注释一般用#[oracle@localhost ~]$ crontab -e3:删除当前用户的定时任务[root@localh
  • 安装crontab sudo apt-get install -y rsyslog 启动crontab sudo service rsyslog start sudo cron -f &amp; 使用 man crontab 查看使用方法 ...# 在打开的文本中的最后添加下面一句话,文本中的#是注释的意思...
  • 一、crontab 1、查看crontab状态 命令:service crond status ...2、编辑crontab ...首先设置crontab 编辑器 ...命令:crontab -e  ...# 注释 * * * * * command(分,时,天,月,年 命令) 。 如果是
  • 如果你想让你的linux在每一天结束后自动帮你提交你的...crontablinux下保存管理员的系统维护计划的文件 crontab配置格式 配置文件支持#开始的注释行 非注释行包括6~7个字段: minute hour day month weekday [use
  • crontab -e进入编辑定时任务界面,每一行代表一个定时任务,#开头的行为注释行,一行分成6列 分钟 小时 日期 月份 星期 调度的作业(命令),默认情况下/etc/crontab文件有规则(fedora亲测) 前五列允许出现...
  • crontab

    2017-08-04 16:16:00
    cron是一个Linux下的定时执行工具,无需人工干预 1.启动rsyslog : sudo service rsyslog start 2.启动crontab:sudo cron -f & 3.添加一个任务:crontab -e 并且可以1(vim打开)[创建这个文件放在/var/...
  • Linux系统的实际使用中,可能会经常碰到让系统在某个特定时间执行某些任务的情况,特别是在服务器中则更为常见,我今天也对这个计划...在RHEL6中,/etc/crontab文件有下面的注释 # Example of job definition: ...
  • 最终执行代码 ...#*/2 * * * * date >> /home/pi/Desktop/time.log ...代码注释:在15分(即6点15,14点15,17点15),在6点,14点,17点 执行py代码 完整操作流程 root@ : crontab -e 在cronta...
  • 这里写自定义目录标题at 定时任务crontab 任务调度新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、...
  • crontab -l 查看当前用户下的定时任务“crontab -e”:修改或者新建当前任务( 默认进入crontab任务进行编辑 或者第一次编辑后保存的名字就是crontab),弹出的页面中"#"后边都是注释,可以全部删除,输入以下内容:...
  • Crontab定时任务

    2009-10-21 12:57:24
    crontab(指这个应用、这个机制)的...下面是Linuxcrontab手册中的知识点,小结如下: 1. crontab文件“正式行”的开始 空行、以空格或者“tab”开行的行,被cron(daemon)忽略。 以#开始的行,作为注释被cron(...
  • 细读crontab命令

    2009-11-25 15:53:48
    一句话总结crontab(指这个应用...下面是Linuxcrontab手册中的知识点,小结如下: 1. crontab文件“正式行”的开始 空行、以空格或者“tab”开行的行,被cron(daemon)忽略。 以#开始的行,作为注释被cron(d...
  • crontab 定时任务

    2018-04-01 16:38:21
    Linux crontab是用来定期执行程序的命令。 代表覆盖写入 &gt; 追加写入 &gt;&gt; 写入命令 crontab -e 回车 写入运行数进程 * * * * * /usr/bin/php (这里是空格) /phpcode/test.php &gt;&...
  • crontab用法详解

    2013-11-25 12:04:05
    注释crontab文件 如果不希望删除写好的crontab文件,在该crontab文件前添加#将该文件注释掉。 恢复丢失的crontab文件 如果不小心误删了crontab文件,假设你在自己的$HOME目录下还有一个备份,那么可以将其拷贝到/var...
  • Linux给正文第一行添加注释

    千次阅读 2017-04-18 16:24:29
     sed 's/^/\#&/g' /etc/crontab
  • Linux删除正文首行的#号注释

    千次阅读 2017-04-18 16:25:46
     sed 's/\#//g' /etc/crontab
  • crontab--定时作业

    2010-05-27 10:27:00
    了解了一下相关内容,总感觉和windows里的定时任务差不多,呵呵写一些自己的理解,如果错了还请见谅~~~1、文件位置:Linux:/etc/crontabAIX:/var/spool/cron/crontabs/注:AIX下crontab文件与用户名相同,...
  • 大家在Linux系统的实际使用中,可能会经常碰到让系统在某个特定时间执行某些任务的情况,特别是在服务器中则更为常见,我今天也对这个计划任务...在RHEL6中,/etc/crontab文件有下面的注释# Example of job definit...

空空如也

空空如也

1 2 3 4
收藏数 68
精华内容 27
关键字:

linux注释crontab

linux 订阅