标签存档: Shell

AIX的shell脚本中求前几天的日期

aix shell dateShell脚本虽然功能已经足够强大,但毕竟不是一种全能的编程语言。表现在实现一些功能时,必须与操作系统的内外部命令紧密结合才能完成。Shell脚本中想要取得前几天的日期的话,由于存在28、29、30、31天每月的情况,所以不能直接运算。在linux下,date有-d参数,如date -d yesterday 能显示前一天日期。但在AIX 5.3下,date并没有-d参数。网上有些高手写了复杂的脚本,然而还有更简单的方法:

继续阅读 »

一个按文件名中的日期清分日志的Python小程序

python 日志维护的某中间业务平台按报文存储日志,每个报文都会产生一个日志文件,现在大约每天数千笔交易,导致在log目录下产生大量文件,由于aix平台的限制,在查找日志时经常出现列表过长(比如用ls –ltr PEW*_1221_*.log查看时)的错误,操作十分不便。现写如下小Python程序,将日志按天移入每天的目录中,如所有PEW*_1221_*.log移入20131221目录下,代码如下:

继续阅读 »

Shell通配符扩展对Python输入参数的影响

python shell通配符扩展其实是shell做的事情,python无法对其控制。如果用python pg.py 111 222形式调用程序,则argv[0]就是pg.py,argv[1]是111。若是python pg.py *.py 222调用,且当前目录下有pg.py和nn.py两个py程序时,此时argv[0]取到的值仍是pg,py,而argv[1]取到的值可能是pg.py或nn.py(根据其文件名排序)。并不能得到*.py的结果。 如果真要把*.py这几个字符作为参数传入,需将*.py两端加引号,如”*.py”。

Linux下ftp自动传文件的脚本

ftp 脚本曾经在Win98下做过自动往SCO unix下用ftp传文件的批处理,记得SCO openserver下的.netrc文件非常重要,里面可以配置一些ftp命令和宏脚本等。10多年过去,ftp仍然是网络应用中非常重要的工具之一。比起打开图形界面工具后各种鼠标移动选择点击,在命令行窗口行云流水的键盘输入仍然要畅快的多。但是需要自动执行一些备份上传数据文件的工作时,一个自动执行不需要交互输入的ftp脚本就派上用场了。

继续阅读 »

用vi编辑前备份文件的简单脚本

vi  aix shellAIX下,经常需要编辑一些XML配置文件,由于配置文件较复杂,所以编辑之前通常要作备份,那么为什么不做个自动备份功能呢?可能vimrc文件里一些命令会有所帮助,但这里,还是写个脚本完成功能。主要是判断是否当前目录下存在备份目录,如果存在该目录,则判断是否是需要备份的XML配置文件,若备份文件已存在,则进入编辑,若不存在,则将要编辑的文件先拷贝入备份目录,再进行编辑。

继续阅读 »

Python作为脚本执行

python  shell在Windows下,如果注册了扩展名,那么包括jar包和Python程序之类,直接双击就可以自动调用解释器运行。如果安装了Python,则在命令行提示符下,输入kk.py,也可以直接运行。 在Linux下,虽然也常在shell脚本前加上#!/usr/bin/bash之类的,但从未认真考虑过这种问题。毕竟,就算不加,chmod 755之后,仍然可以直接运行该脚本。那么这种方法对于Python脚本的启动执行适用吗?

继续阅读 »

SCO Unix中Shell的case语法

sco unix case 一些国外软件巨头进入中国金融行业的历程,肯定绕不开人民银行。感觉人行至今还是非常喜欢使用IBM的硬件软件,包括RS6000,AIX,DB2数据库和IBM MQ中间件等。SCO的unixware也能分一杯羹,早期在金融业IT部门的SCO Unix还有xenix曾经非常流行,毕竟那时是少有的运行在x86上比较便宜的Unix操作系统。但是今天再看,SCO的UnixWare和SCO OpenServer已经归属于Xinuos公司名下了。

继续阅读 »

用Shell脚本切换目录

shell cdLinux下,如何快速切换至一个较深的目录? 编写脚本kk 内容为 cd  XXXXXXX/xxxxxxx/xxx/ 然后在shell下执行,无反应,显然,shell下执行的脚本会打开一个新shell运行,切换的目录不会影响当前shell的目录。 然后呢,我们可用source kk或. kk执行,此二命令会在当前shell下执行命令。所以可以正确切换。 但还是麻烦,我们可以修改.bashrc ,添加alias命令,为 . kk起一个别名: alias c=’. kk’ 重新登录后,我们直接敲 c,即可切换至我们需要的目录。

Shell中将命令结果赋值给变量

shell df  exprLinux下的Shell是一种功能强大的脚本语言,历史的积累使它有很多不同寻常的用法。比如aa=·expr …..·是求值语句的写法。如下的一条语句组合:aa=·df | grep /kk | awk ‘{print $2}’·,可将df 第2列的值赋给变量aa。然后可执行磁盘空间诊断:if [ $aa -lt 20000 ]; then echo ‘小于’ else echo ‘大于’ fi。若此处将执行语句变为数据清理脚本,即可清理空间。

Unix(AIX)下停进程的一般Shell程序

shell kill 进程UNIX下停进程,如无特殊需求,一般就是直接杀掉,具体流程就是查找出指定的进程id,然后kill掉就行了。所以停进程的操作基本相似,可以有一个模板程序稍稍改动就能完成。下面程序完成杀掉名为program的进程的功能,多个同名进程也可一起杀掉。略作改动的话还可以用来清理共享内存,消息队列和信号量等。

继续阅读 »

第 1 页,共 2 页12