跟我一起学<perl系统管理脚本> 第1课

简介:
perl在linux/unix下的使用越来越广,从简单的文本处理,到WEB的前端开发都有它的身影,而我呢!也是一个perl的学习者,现将自己收集的资料一起与大家分享,让大家能一起掌握这门技术.
#*
#* look in the current directory for core files
#*
opendir(DIR,".") or die "Can't open the current directory: $!\n";
# read file/directory names in that directory into @names
@names = readdir(DIR) or die "Unable to read current dir:$!\n";
closedir(DIR);
foreach $name (@names) {
    next if ($name eq "."); # skip the current directory entry
    next if ($name eq ".."); # skip the parent directory entry
    if (-d $name){ # is this a directory?
        print "found a directory: $name\n";
        next; # can skip to the next name in the for loop
    }
    if ($name eq "core") { # is this a file named "core"?
        print "found one!\n";
    }
}
[学习]
这个脚本的作用是用来在当前的目录下查找core文件的,类似与bash下的find
find . -type f -name "core"
这个脚本在功能上看上去很简单,就是一个查找的功能,但我们可以将其扩展为一个函数,用与以后我们在写大一点的脚本时,将其作为一个查找的功能.最起码,我们在这里可以学习目录句柄嘛,像opendir(DIR,"."),大家经常写的其实是文件句柄如open(FIN,"/etc/passwd"),还有像循环语句foreach.....还有字各个地方串比较符eq,这些都是小的细节,都是我们在脱离书本时,是否能够想得到呢?我想未必吧,至少我有时也会忘记,哈哈(我是perl的初学者哟)!
[扩展]
     #!/usr/bin/perl -w
     #Author:badboy
     #2008/11/25 13:30
     $file = file.lock;
     $tmp=/tmp;
     opendir(DIR,"$tmp") or die "Can't open the current directory: $!\n";
     @names = readdir(DIR) or die "Unable to read current dir:$!\n";
     closedir(DIR);
     foreach $name (@names) {
         next if ($name eq ".");
         next if ($name eq "..");
        if (-d $name){
            next;
         }
       if ($name eq $file) {
          Sendmail $name; #将其名称传递给Sendmail函数
         }
     }
这个扩展脚本是用与临时解决问题的功能,假设我们应用出现一个这样的问题,只要在/tmp目录下出现file.lock,应用将不能使用,而我们此时又找不到根源,这时我们就可以用这个借助cron定时的检查这个文件,一出现就发邮件通知给你,让你在第一时间处理.还可以用在很多地方,还需要大家活用,我这种用法只是解决临时性的,解决问题才是关键......


本文转自hahazhu0634 51CTO博客,原文链接:http://blog.51cto.com/5ydycm/115081,如需转载请自行联系原作者
相关文章
|
SQL 索引 数据库
使用instr 函数优化替换Like条件子句提高数据检索性能案例总结
使用instr 函数优化替换Like条件子句提高数据检索性能
1343 0
使用instr 函数优化替换Like条件子句提高数据检索性能案例总结
|
5月前
|
人工智能 测试技术 API
Apifox 和 Apipost如何选?2025企业API开发工具选型需求分析及建议
本文对比了 Apipost 与 Apifox 在 AI 功能及 API 功能上的差异,指出 Apipost 凭借 AI 一键补全文档、智能提取 API 文档、AI 断言、模拟测试数据、生成用例、参数更新、脚本生成、全局搜索等能力,显著提升开发效率与质量。同时,Apipost 在离线使用、一键分享、OpenAPI 格式支持、多协议适配、数据库导入、模拟数据、压测功能等基础 API 能力上亦全面领先。在AI时代的2025年,API + AI是Apipost将AI技术融合行业应用的最佳典范,这种趋势下,也说明Apipost 更能助力企业与开发者实现高效智能开发。
321 2
|
8月前
|
人工智能 大数据
阿里云产品四月刊来啦
阿里云百炼推出首个全生命周期MCP服务,通义万相2.1首尾帧模型开源,大数据 AI 产品升级发布,详情请点击阿里云产品四月刊
197 12
阿里云产品四月刊来啦
|
分布式计算 关系型数据库 MySQL
【产品升级】Dataphin V4.5 全新上线:研发效能再提升,资产运营更高效
Dataphin是瓴羊推出的智能数据建设与治理平台,基于阿里巴巴内部实践,提供一站式数据建设与治理能力。V4.5版本研发新增支持GaussDB和TDH 9.3.x作为离线计算引擎、支持MySQL分库分表集成、读取和写入MaxCompute Delta及Hudi湖仓表等;资产运营与消费持续提效,支持批量导入和导出目录与资产信息、对API按照主题进行编目并上架到资产目录、增加资产的血缘、质量评分和元数据变更记录等。
138 1
|
8月前
|
存储 Oracle Java
大厂(转转、携程、京东)都用分代ZGC,卡顿降低20倍,吞吐量提升4倍。分代ZGC 这么牛?底层原理是什么?
大厂(转转、携程、京东)都用分代ZGC,卡顿降低20倍,吞吐量提升4倍。分代ZGC 这么牛?底层原理是什么?
|
SQL 缓存 中间件
Mycat概述及基本使用
Mycat概述及基本使用
Mycat概述及基本使用
|
定位技术
酷炫的迁徙图和轮播图,用pyecharts也可以做出来
酷炫的迁徙图和轮播图,用pyecharts也可以做出来
酷炫的迁徙图和轮播图,用pyecharts也可以做出来
|
异构计算
【EDA实验一】Quartus II 软件和 DE2-115 开发板 使用入门实验
【EDA实验一】Quartus II 软件和 DE2-115 开发板 使用入门实验
【EDA实验一】Quartus II 软件和 DE2-115 开发板 使用入门实验
|
安全 数据挖掘 测试技术
一篇文章教会你用Python抓取抖音app热点数据
一篇文章教会你用Python抓取抖音app热点数据
1222 0
一篇文章教会你用Python抓取抖音app热点数据