系统管理
文章平均质量分 51
炼气散人
等儿子高考后,或许会回来
展开
-
newlisp 获取cpu信息
紧跟前文,用newlisp写了一个获取本机cpu信息的小程序,每次都会调用REST API将数据发送给web server.#!/usr/bin/newlisp(load "config.lsp")(define (add-log msg) (append-file "cpu.log" (append "\n" (string (now 480)) " ")) (append-fi原创 2013-09-14 22:09:50 · 3522 阅读 · 0 评论 -
newlisp 监控Linux进程 二
在前文newlisp 监控Linux进程 一 中,我已经实现了一个newlisp脚本,能够根据配置文件中的配置检查进程是否存在,并且将检查结果写到本地日志文件中。本篇继续,当检查进程已经不存在后,要启动进程。但是每个进程启动的命令是不相同的,不可能将所有这些特殊命令都写在process.lsp文件中。最好是将代码以数据的方式卸载filter.lsp配置文件中。然后程序运行时,从配置文件中读取出来,原创 2013-11-05 12:41:48 · 2968 阅读 · 0 评论 -
newlisp做git lab系统备份
下面的代码都是newlisp, 在crontab的帮助下实现定时备份git仓库和mysql数据库。因为git lab的数据存放在这里。事实上,newlisp很适合做运维脚本。git_backup.lsp文件:(set 'folder-name (date (date-value) 0 "%Y-%m-%d"))(println folder-name)(set 'folder-name2 (da原创 2013-01-23 13:42:31 · 2860 阅读 · 0 评论 -
newlisp 备份mongodb数据库
#!/usr/bin/newlisp(set 'folder-name (date (date-value) 0 "%Y-%m-%d"))(set 'base-path "/opt/backup")(set 'mongo-host "192.168.1.51")(set 'save-dir (format "%s/%s" base-path folder-name))(set 'del原创 2013-11-06 13:22:40 · 3117 阅读 · 0 评论 -
newlisp文件作为脚本运行
在windows上面很简单,直接创建lsp文件,开始写newlisp代码,只是不要忘记退出用(exit)就行了。比如:(env "J" "A")(println (env "J"))(exit)运行时,windows平台需要执行newlisp your.lsp.但是在Linux上面,需要多做两件事情:1. 第一行设置成如下:#!/usr/bin/newlisp2. 修改文件权限chmo原创 2013-02-28 12:53:57 · 2680 阅读 · 0 评论 -
遍历目录树,清理编译目录
newlisp清理VC编译文件原创 2013-08-16 12:01:13 · 3238 阅读 · 0 评论 -
杀掉所有newlisp进程
在用newlisp创建多个进程模拟客户端进行测试的时候,关闭是个问题,下面的脚本很方便的杀掉所有newlisp进程#!/usr/bin/newlisp(set 'r (exec "pidof newlisp"))(dolist (l r) (exec (append "kill " l)))原创 2013-11-22 15:19:44 · 2665 阅读 · 0 评论 -
递归遍历目录树,并处理文件
递归遍历目录树的复用方法原创 2014-04-12 09:01:55 · 4128 阅读 · 0 评论 -
crontab中运行newLISP脚本的环境变量设置
今天遇到一个问题,在终端里运行newLISP脚本,一切正常,移动到crontab中就不行。即便crontab -e命令运行在同一个用户下,还是有问题。由于newLISP脚本要用到hive和hadoop,估计是环境变量的问题。所以先用newLISP shell运行(env)命令,将当前环境变量记录到文件evn.lsp中。然后在newLISP脚本中加载之。下面是env.lsp文件部分内容:(set '原创 2014-05-31 12:13:59 · 3320 阅读 · 1 评论 -
用newLISP通过SMTP服务器发送邮件
直接使用标准模块smtpx.lsp, smtp.lsp不能设定端口,经过试用无用。下面是例子代码:#!/usr/bin/newlisp(set 'debug-flag true)(module "smtpx.lsp")(set 'r (SMTP:send-mail "from@my.com" "chenshu@letv.com" "test" "How are you原创 2014-05-22 23:51:27 · 3529 阅读 · 0 评论 -
禁止笔记本的touchpad
用命令行xinput list可以查看到touchpad的序号,比如12, 然后用命令可以禁止掉touchpadxinput set-prop 12 "Device Enabled" 0但是如果笔记本上插入其他USB设备,会导致touchpad序号变化,因此下面用一段newlisp脚本进行正则表达式匹配,自动适应变化的序号:#!/usr/bin/newlisp(set 'r (exec "xi原创 2014-03-11 21:30:31 · 3248 阅读 · 0 评论 -
newlisp 监控Linux进程 一
之前我的newlisp 监控redmine中描述了监控redmine进程的方法,今天更进一步,添加一个配置文件,里面描述了要监控的进程list,这样每次逐个检查本机的进程.先来实现个简单的检查,一个函数check-proces,接受一个字符串,用来检查进程是否存在#!/usr/bin/newlisp(define (check-process filter-str) (set 'r (ex原创 2013-11-05 11:18:33 · 3263 阅读 · 0 评论 -
newlisp 监控Linux进程 四
监控进程的cpu和内存状况原创 2014-03-23 17:57:54 · 3351 阅读 · 0 评论 -
newlisp 监控redmine
刚装好的redmine会时不时crash,所以写了一个脚本去监控之,如果检查结果不是三行,那么说明进程crash,那就启动它。#!/usr/bin/newlisp(set 'r (exec "ps -def | grep 'dispatch'"))(set 'l (length r))(if (= 3 l) (begin (println "redmine works f原创 2013-07-25 16:45:29 · 3515 阅读 · 0 评论 -
newlisp 监控Linux进程 四
本节尝试将监控进程的方式交给调用者。主要有两个原因:1. 调用者传递判定代码,这样可以根据不同的平台进行变化,比如windows肯定没有ps -def 命令。这样可以适应更多的情况2. ps -def | grep ***的方式,在newlisp中返回的表的元素数目少数时候会少一个元素,比如我在监控mongodb的时候遇到下面的元素有时候得不到。"root 10658 10655 0 0原创 2013-11-16 16:09:38 · 3107 阅读 · 0 评论 -
newlisp 监控Linux进程 三
本节很简单,仅仅是添加一个发送状态到web server的功能。1表示进程或者,0表示进程已经不存在。process.lsp全部代码:#!/usr/bin/newlisp(set 'cur-path "/opt/detector")(load (append cur-path "/filter.lsp"))(load (append cur-path "/config.lsp"))(d原创 2013-11-05 13:51:47 · 2855 阅读 · 0 评论 -
安装Nginx为Windows service
安装目标系统是windows 7首先看了这篇文章:http://blog.csdn.net/defonds/article/details/7906005里面推荐winsw作为注册服务的工具,的确不错。该项目主页在:https://github.com/kohsuke/winsw使用方法很简单,下载exe文件,重命名为install.exe,然后创建一个install.xml文件,根据主页上介绍的原创 2013-04-02 15:08:52 · 7671 阅读 · 0 评论 -
将newlisp脚本安装成windows service
现在有一个需求,将一个newlisp脚本文件做成windows service,开机自动启动。每隔一段时间,检查一下系统环境,其他的进程是否还活着,等等。由于在windows上面运行newlisp,需要执行类似这种命令:newlisp a.lsp因此写成一个bat文件来执行上面的命令。这样问题就转化成如何将bat文件安装成windows service. 下面是详细的例子。假设有一个daemon.原创 2013-05-09 09:42:51 · 3363 阅读 · 0 评论 -
newlisp获取并计算内存负载
下面的代码计算Linux下的内存负载#!/usr/bin/newlisp(set 'cur-path "/opt/detector")(load (append cur-path "/config.lsp"))(define (add-log msg) (println msg) (append-file (append cur-path "/mem.log") (append "原创 2013-10-28 22:31:36 · 2804 阅读 · 0 评论 -
用newlisp管理windows下的nginx
我写了一个nginx.lsp文件,可以通过传递参数来进行Nginx进程管理。使用方法1. 从nginx站点下载windows版本的程序,加压后,将newlisp.lsp文件复制到该目录。2. 确保windows的system32目录下有newlisp.exe程序。3. 运行程序, 目前支持5个参数newlisp nginx.lsp start|stop|monitor|reload|view比如下原创 2013-05-23 17:12:38 · 3661 阅读 · 0 评论 -
启动service的时候用nohup
这不是什么时候都出问题,不过在我两个用boost::asio写的service需要安装成Linux service时,在用newlisp的(exec "service data_service start")来启动的时候,发现newlisp会挂起,这个问题我曾经在newlisp社区提过,直到我都已经忘记有这件事情都没有人回答。:(不过今天再次遇到这个问题,决定尝试自己解决一下,首先推测是servi原创 2014-02-26 00:48:47 · 5761 阅读 · 0 评论 -
newlsip 检查磁盘分区使用情况
主要还是用df -k这个命令,然后将输出结果全部逐行解析,最后调用REST API,发送给服务器保存。参考代码:#!/usr/bin/newlisp(set 'cur-path "/opt/detector")(load (append cur-path "/config.lsp"))(define (add-log msg) (println msg) (append-file原创 2013-10-29 20:55:50 · 2819 阅读 · 0 评论 -
远程自动部署
远程部署服务原创 2013-08-24 00:15:40 · 3925 阅读 · 0 评论 -
newLISP运行scp命令并打印进度
如果在终端直接运行scp命令,会看到类似的输出scp train.html root@your-host:/path/of/your/foldertrain.html 100% 149KB 149.4KB/s 00:00 如果用newlisp的exec运行这个命令,得到的结果却是()如何获得上面的输出?train.原创 2016-05-22 18:10:58 · 10283 阅读 · 0 评论