zoukankan      html  css  js  c++  java
  • 自动删除文件脚本(Linux shell脚本)

    每天在/home/face/capturepic/2017/目录下都会产生很多文件
    /home/face/capturepic/2017/4/21
    /home/face/capturepic/2017/4/22

    希望的是每天只保留当天的文件夹,其他的文件夹删除
    改写的.sh脚本如下
    !/bin/bash
    dir="/home/face/capturepic/2017/"
    Available=`df -k | sed -n '/sda3/p' | awk '{print int($5)}'`
    if [ $Available -gt 10 ];then
        echo "available less 10 "
        for mou in `ls $dir`
            do
                tmou=date +%m
                if [ $mou -lt $tmou ];then
                    echo "delete dir $dir$mou "
                    rm -rf $dir$mou
                elif [ $mou -eq $tmou ];then
                    for day in `ls $dir$mou/`
                        do
                            today=date +%d
                            if [ $day -ne $today ];then
                                echo "delete dir $dir$tmou/$day "
                                rm -rf $dir$tmou/$day
                            fi
                        done
                fi
            done
    fi

    定时执行的corn文件如下(每分钟执行一次)

    * * * * * ./test.sh
    * * * * * ./test.sh 最好写一下脚本的绝对路径,因为最后放到crontab里面,当前路径就不同了 
    最好改为如下
    * * * * * /home/test.sh

    还有就是脚本里面用到的一些文件之类的,最好也用绝对路径

    crontab XXX.cron
    
    

    直接加入定时脚本中





    crontab -l
    能够查看脚本是否放在了crontab里面

    如果运行了,可以运行如下命令查看最近日志,如果看不到日志,说明根本没运行
    root@u3-server:/home/u3/mjl# tail /var/log/cron.log
    Oct 15 11:32:01 u3-server CRON[15159]: (root) CMD (/home/u3/mjl/watchdog.sh)
    Oct 15 11:32:01 u3-server CRON[15158]: (CRON) info (No MTA installed, discarding output)
    Oct 15 11:33:01 u3-server CRON[15293]: (root) CMD (/home/u3/mjl/watchdog.sh)
    Oct 15 11:33:01 u3-server CRON[15292]: (CRON) info (No MTA installed, discarding output)
    Oct 15 11:34:01 u3-server CRON[15427]: (root) CMD (/home/u3/mjl/watchdog.sh)
    Oct 15 11:34:01 u3-server CRON[15426]: (CRON) info (No MTA installed, discarding output)
    Oct 15 11:35:01 u3-server CRON[15561]: (root) CMD (/home/u3/mjl/watchdog.sh)
    Oct 15 11:35:01 u3-server CRON[15560]: (CRON) info (No MTA installed, discarding output)
    Oct 15 11:36:01 u3-server CRON[15695]: (root) CMD (/home/u3/mjl/watchdog.sh)
    Oct 15 11:36:01 u3-server CRON[15694]: (CRON) info (No MTA installed, discarding output)
    有时候/var/log/cron.log 不一定有日志
    需要在cron脚本里面加入重定向日志,如
    * * * * * /home/jyzbyj/mjl/watchdog/watchdog.sh >> /home/jyzbyj/mjl/watchdog/mylog.log 2>&1

    另外service cron start可以正常启动服务

    一些网上的资料说 /sbin/service crond start ,我在ubuntu下面不能执行

    开机的时候自动启动服务

    u3@u3-server:~/mjl$ cat /etc/rc.local     
    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    service cron start
    exit 0

    杀死所有名称叫test的进程

    kill.sh

    killall test

    运行在后台,并且设置为init进程的子进程,不随终端的关闭退出

    start.sh

    cd /home/user/test/
    setsid ./test  &    

     注意,不要放在/etc/ 等系统目录下面,可能导致没有执行权限

    cron脚本在不同的用户有不同的设置,所以执行程序一定要保证能够在当前用户能执行

    提示:如果你的脚本总是报错,很可能是你用了windows下面的编辑器,最好有linux的编辑器

  • 相关阅读:
    JVM 性能调优工具:jstat 使用
    JVM 性能调优工具,列表
    Mac 上 java 究竟在哪里,本文彻底让你搞清楚!
    Java 中常用锁实现的方式有两种:1. 用并发包中的锁类;2. 使用同步代码块
    Android 9.0 配置 charles 的 https 抓包
    背景,不要用:background-size: contain; 推荐用:background-size: 100% 100%;
    textarea 过滤 emoji 表情和空格(如果只 replace emoji 表情,会产生一个空格,所以再 replace 空格)
    小程序 textarea 无法隐藏的解决方案
    textarea 过滤 emoji 表情
    wx.setClipboardData:检测有复制内容再弹窗
  • 原文地址:https://www.cnblogs.com/baldermurphy/p/7658949.html
Copyright © 2011-2022 走看看