工程师都比较懒, 在每天的各种问题邮件几百几千封的时候会经常遗漏重要的邮件. 会经常被用户以及公司其他同事发现问题时@到时候才发现. 现在大家也接受了slack这个工具. 那么我就在想何不把更重要的消息发送到slack里呢.
原来也做过, 就是写一些脚本, 会把运行的结果通过 slacker 里面封装的 postMessage 发消息进来. 先说一下为什么我不用 Incoming-webhooks . 最主要的, 因为通常slack都是用的免费版, 我担心对webhooks会有限制或者未来会有限制.
但是为什么做这个 微框架 呢? 一则这样的脚本和任务会越来越多, 脚本需要设置的定时任务的间隔也会各不相同. 用系统自带的crontab, 每次新增修改删除都要去做调整. 代码还需要做抽象用celery, rq这些其实一是很浪费, 二也不怎么应景. 所以我写了这个工具.
优点和特点 只支持python3 支持多种调度模式: AsyncIOSchedulerBackgroundScheduler, GeventScheduler, TornadoScheduler. 默认是AsyncIO 使用 AST , 而没有直接import代码. 代码和项目无关, 没有register. 只需要按格式编写plugin脚本即可, 要被执行的任务加一个装饰器(只需要他是一个装饰器, 不需要存在). 指定运行的间隔就好 附带常用的配置 安装
pip install slack-alert
slack-alert有个默认的配置 slack_alert.conf . 使用 OS X 或者 linux 可以拷贝到 ~/.config/slack_alert.conf
编写插件
PS: 插件目录默认是当前目录的 plugins 子目录下.
tree plugins plugins ├—— examples.py 0 directories, 1 files
# coding=utf-8 import os @deco(seconds=2) # 这个一个正确格式的任务, 因为装饰器里面包含`hours|seconds|minutes|days`这样的键. def a(): print(1) # 插件也需要python3的语法 print(os) # 可以使用外部的变量成都软件外包公司http://www.yingtaow.com?return 1 # 这个返回值最后会被发送到slack的channel里面 def b(): # 这个函数因为没有对应的格式的装饰器 他不会被当做一个任务 print(3) return 2 @deco2(xx=1) @deco(minutes=2, seconds=30) def c(): # 这个函数也不是一个正确格式的装饰器. 我需要把`deco`放在最外面 print(4) return 3
PS: 大家不要迷惑为什么 deco 这个函数没有介绍. 因为我只需要这个代码文本. 我其实不直接运行这个脚本. 所以不需要装饰器存在.
使用
slack-alert
这样就启动了.
a 这个函数就会每隔2秒运行一次, 运行三次后, 停顿60分钟… 这样循环(高级用法看下面的参数). 并且把结果发送到slack里面
原理 启动 slack-alert 我首先加载配置. 我会根据配置 --path 去找我应该去哪个文件目录下(默认是当前目录)的 plugins 子目录下去找符合的任务程序. 加载符合的目录下的每个python文件. 生成一个AST(抽象语法树). 遍历这棵树. 找到符合我需要的语法的函数. 去掉这个实际不存在的装饰器. 编译源码并且执行. 生成一个命名空间 获取这个命名空间的参数, 通过 apscheduler . 添加一个任务 添加全部任务. 再添加一个监控这些任务的任务(主要是用来在某些时机停掉/启动其他某些任务) 启动任务调度. 直到 Ctrl+C 高级选项
Linux系统跟windows系统的安装不大一样,有不少需要注意的地方,以RedhatLinux
9.0为例
一、
安装前的注意事项。
关于机器配置:Linux设计之初衷就是用较低的系统配置提供高效率的系统服务!因此安装Linux并没有严格的系统配置要求,只要Pentium以上的CPU、64MB以上的内存、1GB左右的硬盘空间即可正常安装基本的Linux系统并能运行一些系统服务;要顺畅地运行Linux的图形界面,建议内存要在128MB以上。
其它硬件支持上:Linux目前支持几乎所有的处理器(CPU)。另外要提一下,如果你手头的Linux版本较早的话,可能只支持很少的显卡、声卡类型,而一般现在所使用的版本,如本文后例的RedHat
Linux9.0,就不需担心这些了。
关于安装方式:Redhat
Linux
9.0可以有两种方式进行安装。一种是硬盘安装,即从网上直接下载Linux的ISO映像文件。一共包括三个文件①shrike-i386-disc1.iso;②shrike-i386-disc2.iso;③
shrike-i386-disc3.iso,这就好似三张安装光盘。接着使用Daemon
Tool之类的虚拟光驱软件将其解压出来,找到dosutils目录,执行里面的autoboot.bat批处理文件即可。
另一种最方便的就是光盘安装(一般是3CD)。
Redhat
Linux
9.0保留了以前版本中的字符模式安装界面,并同时具有“豪华”的GUI图形化界面。在开始安装时RedHat
9会对安装光盘介质进行检测,以防止在安装过程中的因光盘无法读取等情况造成安装失败,非常实用
二、
实际安装过程。
无论是从硬盘安装还是光盘安装,最终都会进入如下的安装过程。全图形化界面,我们可以很快上手。
第一步:选择安装语言:RedHat支持世界上几乎所有国家的语言,当然包括中文。这一步比较简单,直接选中简体中文一项点“next”即可。选择为简体中文后,剩下的安装步骤即为全中文,在安装结束后,Linux的界面也将默认为简体中文!
第二步:选择键盘类型。在这一步里是要我们选择在系统上使用的键盘布局类型,一般点选其默认“U.S.
English”即可
第三步:选择你的鼠标类型。这一步和上一步一样,一般以其默认即可。这里有点小小的问题需注意:尽量在列表中找到与你鼠标相匹配的类型,否则安装完成后的系统 *** 作会出现错误。比如你还用的是比较
老的串口(扁口)鼠标,要在“设备”一栏内选择与其对应的端口
第四步:确定安装类型。一共提供了四个选择。上面三项其实是省心设计,因为要定制自己的Linux系统,完全可以选择第四项“定制”!而如果你想要安装过程更快一些,可以根据自己的用途选择前面三项。每一项都有说明,大家应该不难理解,这里不在详述。我们选“定制”进入下一步
第五步:确定磁盘分区方式。REDHAT
Linux
9.0提供了两种分区方式——自动分区和使用DISK
DRUID程序进行手动分区。
其中自动分区选择,如果你是新购的计算机,硬盘上没有任何 *** 作系统,建议使用此选项,它会自动根据磁盘和内存的大小,分配磁盘空间和SWAP空间。一定注意要是硬盘没有安装过任何 *** 作系统,因为它会自动删除原先硬盘上的数据并格式化成为Linux的分区文件系统(EXT2、EXT3等格式)!
而手动分区就更好一些。如果你的系统已安装过windows系列的 *** 作系统,就可以用这种DISK
DRUID程序的方式进行手动分区。利用DISK
DRUID可以很方便的对磁盘分区进行删除、添加和修改
第六步:开始磁盘分区。这是Linux安装过程中最重要的一步。Linux有自己的文件系统格式(redhat
linux默认为EXT3),而且其分区在Windows *** 作系统下无法识别,所以要为Linux单独开辟一个(或若干个)分区。在使用DISK
DRUID对磁盘分区进行 *** 作时,有四个重要的参数需要仔细设定:它们是挂载点、文件系统类型、分区大小以及驱动器
以下对四个参数作个简单说明:
1、
挂载点:它指定了该分区对应Linux文件系统的哪个目录。意思就是将不同的物理磁盘上的分区映射到不同的目录,这样可以实现将不同的服务程序放在不同的物理磁盘上,当其中一个分区损坏不会影响到其他的分区数据。
2、
文件系统类型:可选择的类型有EXT2、EXT3、REISERFS、SWAP等。前两个是系统默认类型,SWAP是建立虚拟内存空间。
3、
大小:以MB为单位。这里主要提一下SWAP分区大小,一般设为物理内存的两倍,如果你的物理内存大于1GB,SWAP分区建议设置为2GB。
4、
驱动器:即是指计算机中有多个物理磁盘,可以很方便的选择你要进行分区 *** 作的那个物理磁盘。类似于“FDISK”分区中的 *** 作。
第七步:配置引导装载程序。当你机子还有windows系统存在时,就要注意在这里配置一下了。框内部分即为你机器里安装的所有系统列表,如果没有发现其它系统而你确实安装过的,可以点“添加”进行加入,不然计算机将会默认启动Linux,你先前的 *** 作系统将无法启动!点“编辑”可以设定某个系统的启动等待时间
第八步:网络配置。如果你是拨号上网的话,就直接选NEXT;而如果你是通过局域网或是宽带上网,就需要填写IP和网关。到这一步,安装程序会自动检测计算机的所有网络设备,故要进行配置,直接点选安装程序检测到的本机网络设备,再点“编辑”即可进行配置。可以选择DHCP动态分配和手动配置两种方式,请根据你的网络类型而定此步的设置。
第九步:防火墙配置。这一步是网络安全配置。对系统安全要求较高的朋友可以选择“高级”级别,而一般的用户勾选“使用默认的防火墙规则”即可。另外就是注意“允许进入”一项,在这里对你的Linux将要开展的一些服务作规划,如要架设WEB服务器,上网冲浪,应当勾选“www(HTTP)”一项;“SSH”是一种对系统进行保护的安全机制,建议勾选
接下来是选择系统默认使用语言、时区选择、以及设置根口令这三步。由于这几步没什么需要注意的,按其默认点下一步即可,唯有设置根口令一步提醒一下,只有在管理时才使用根帐号。
第十步:欲安装软件组选择。即定制你的Linux程序组,从上往下有“桌面”、“应用程序”、“网络组件”等详尽的分类,当选定某一个组件后,点击“细节”可以查看此组件所包含的子组件数(前面也有数字提示)
要使Linux以图形界面启动,就点选“X窗口系统”;在“应用程序”中“图形化互联网”也应点选,这样才能在Linux系统下正常的浏览网页及进行各种网络应用。一般说来,在“
程序组件”所示的所有选项中,可以点选右边的“细节”按钮一个一个的去看看,挑自己最实用的安装
第十一步:开始安装。经过前面十步,现在终于可以开始安装了。Linux比起windows *** 作系统的安装来说,要慢得多,根据你机器的配置情况,此过程会持续一小时左右.期间会让提示让你插入第二张、第三张光盘,因此得乖乖的呆在电脑面前!OK,一小时过后,满足的使用你的Linux系统吧
方法一:直接通过lilo制定init="/bin/bash启动来修改密码方法二:通过光盘启动,挂载/分区,修改/etc/shadow文件来清空密码方法一实现过程首先启动启动linux,到lilo出现的时候,我们随便按一键让lilo停住(不要按回车哦)
这里我们看到lilo列表里面只有一个系统,就是启动项名称叫slack的系统。
我们输入如下命令启动这个系统
slack init=/bin/bash rw
注意:我们上面命令里面的slack是和启动项名称对应的。你在你的lilo里面设置的系统是什么名称,就用什么代替。
系统进入系统后,会出现如下的提示符
bash-3.00#我们在提示符后面输入
passwd按照给我们的说明,输入两至三次新的密码就可以了。
因为现在的系统只是个很小的内核系统,我们不要作任何其它的 *** 作,也不要用exit退出shell.修改好密码后,我们用如下命令让/目录只读
mount -o remount,rw /
现在就可以安全的重启系统了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)