自动删除文件的脚本

摘要:
每天,许多文件都会在/home/face/capturepic/2017/目录、/home/face/capturepic/2017/4/21/home/fare/capturepic/2017/4/22中生成。我们希望每天只保留当天的文件夹。这个用于删除和重写其他文件夹的sh脚本如下/bin/bashdir=“/home/face/capturepic/2017/”可用=`df-k|sed-
每天在/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脚本在不同的用户有不同的设置,所以执行程序一定要保证能够在当前用户能执行
 
以上文章转载他人,时间比较久,所以没有备注原创链接,望谅解!

 

免责声明:文章转载自《自动删除文件的脚本》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle Database 11g Express Edition学习笔记debian9下安装toturn下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Spring 注解 @Scheduled(cron = "0 0/10 * * * ? ") 任务调度动态改变时间

不需要重启应用就可以动态的改变Cron表达式的值 import java.util.Date; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import org.slf4j.Logger; import org.slf4j.Logger...

Linux中计划任务执行脚本crontab-简洁版

我使用的是ubuntu16,所以在ubuntu中一切正常,在其他linux系统中应该都差不多。   1 计划任务,crontab命令选项:     -u指定一个用户,     -l列出某个用户的任务计划,     -r删除某个用户的任务,     -e编辑某个用户的任务   2 cron文件语法:     分     小时   日       月    ...

Linux自带神器logrotate详解

Linux自带神器logrotate详解 散尽浮华 运维 3天前   作者:散尽浮华 链接:https://www.cnblogs.com/kevingrace/p/6307298.html 对于 Linux 系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分 Nginx日志之类的 CRON 脚本...

cron定时任务介绍

什么是cron? Cron是linux系统中用来定期执行或指定程序任务的一种服务或软件。与它相关的有两个工具:crond 和 crontab。crond 就是 cron 在系统内的宿主程序,crontab 是管理 cron 任务的管理工具。一般情况下,我们安装完centos5/6 linux系操作系统之后,默认便会启动crond任务调度服务,另外在我们在开...

Quartz.NET简介

概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。 参...

Linux系统定时任务启动

 分类: linux,shell,python cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin...