文档章节

shell与python判断文件是否存在

o
 osc_1ee7cxmx
发布于 2018/08/06 17:12
字数 707
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

  日常运维中,我们会存在每日备份的现象,针对这一种情况可能会要求监控文件是否存在。比较笨拙的方法就是登录上服务器到某个路径下查看文件是否存在,除此之外,我们可以利用shell或者python来编写监控文件是否存在的脚本来减少工作量。当然,作为一个同样是小白的我,编写的脚本可以略显简单,希望大神们可以指点指点(^_^)

1、shell编写监控文件是否存在的脚本

  我们可以利用CRT或者xshell等工具编写:

  以下是shell中判断文件是否存在,若不存在,则自动创建的方法。(当然,能用英文最好用英文写注释,本人英文水平太差...)

#!/bin/bash
#判断/export/home/wlan/AUTH这个路径下是否每天都会生成AUTH_*.xml文件
#文件名称
filename=/root/AUTH_1_1_`date +%Y%m%d`.xml
if [ ! -f $filename ];then
        touch $filename
        echo "file mk success"
else
        echo "exist"
fi

 

2、python编写铰孔文件是否存在的脚本(这个写了两个系统的实现,其实都差不多)

  1)Windows上:可以利用pycharm工具,当然,前提是环境都配置好了,python环境搭建可以百度一下哈

#判断文件是否存在,若不存在则创建
#
导入模块 import os import datetime #文件名称 filenameHead = "C:\\xxx" filenameFoot = ".txt" nowTime = datetime.datetime.now().strftime("%Y%m%d") if os.path.isfile( filenameHead + nowTime + filenameFoot ): print("文件已存在") else: file = open ( filenameHead + nowTime + filenameFoot,"w" ) file.close () print("文件已创建")

  2)Linux上:同样是使用CRT等工具,只不过文件结尾都是.py的格式,具体的可以自己实现一下看看

#确认字符类型
#-*- coding:utf-8 -*- 
#导入文件用来判断文件是否存在的模块
import os  
#导入获取时间的模块            
import datetime        
#变量,获取当前时间
nowtime = datetime.datetime.now().strftime("%Y%m%d")  
#变量,定义文件所在路径 
path = "/home/tnms2/python/"
#变量,定义文件前缀                           
fileHead = "xxx"     
#变量,定义文件后缀                                  
fileFoot = ".txt"                                      

#判断文件是否存在
if os.path.isfile( path + fileHead + nowtime + fileFoot ):
        print( "The " + fileHead + nowtime + fileFoot + " exist" )
#若不存在,则创建文件
else:
         #创建文件的语法 
        file = open( path + fileHead + nowtime + fileFoot,"w" )
        file.close()
        print( "The " + fileHead + nowtime + fileFoot + " touch successed" )

以上都是可以判断文件是否存在的脚本,恩,算是脚本吧,虽然看着比较简单。如果想要每天都能看到,咱们可以设置一个定时任务并将执行结果打印出来,这样每天只需要登录服务器查看打印出来的文件即可。

#设置定时任务
corntab -e
#每天九点自动执行脚本并且将结果追加到file_exist.log中
00 9 * * * python /export/home/wlan/file_exist.py >> /export/home/wlan/file_exist.log

 

 

  

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

Java线程池

前言 Java中对线程池的抽象是ThreadPoolExecutor类,Executors是一个工具类,内置了多种创建线程池的方法: newFixedThreadPool:固定长度线程池 newCachedThreadPool :可缓存线程池 newSin...

nullpointerxyz
34分钟前
43
0
Python笔记:用Python制作二维码

这些年,二维码在我国的日常使用频率特别大。因为其具有简单及安全性吧!除了用网络工具制作二维码,其实用JavaScript或Python也可以制作二维码,而且更有个性。 示例一(制作普通黑白二维码...

tengyulong
46分钟前
0
0
Redis-初体验/数据结构

定义: Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种 NoSQL(not-only sql,泛指非关系型数据库...

心田已荒
49分钟前
15
0
如何在保留订单的同时从列表中删除重复项? - How do you remove duplicates from a list whilst preserving order?

问题: Is there a built-in that removes duplicates from list in Python, whilst preserving order? 是否有内置的程序在保留顺序的同时从Python列表中删除重复项? I know that I can us...

fyin1314
今天
29
0
以太坊智能合约开发常见的10个安全问题

本文介绍CheckMarx安全研究小组通过扫描公开的以太坊智能合约所发现的Solidity智能合约开发中常见的十大安全问题,其中__未检查的外部调用__ 和 高成本循环 分列排行榜前两名。该安全问题排行...

区块链教程
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部