文档库 最新最全的文档下载
当前位置:文档库 › debian-kali-rc.local-脚本自动启动

debian-kali-rc.local-脚本自动启动

debian-kali-rc.local-脚本自动启动

Kali linux 脚本自动启动:

公司比较多用Redhat,所以习惯使用/etc/rc.local写开机自动运行的脚本,今天配了台Debian,要写自动运行脚本,稍有不同,写下来存档

Debian定义了多个运行级别脚本,分别存放在/etc/rc0.d至/etc/rc6.d中,默认级别为5.

要增加开机自动运行脚本的方法如下:

#vi /etc/init.d/rc.local

写入你需要运行的脚本,:wq退出,这里我将自己的脚本放到/usr/local/bin下,然后在

rc.local下指定脚本路径: ./usr/local/bin/automount,注意要给脚本执行权限,rc.local中也要

加入点' . '来执行脚本。

# chmod +x /etc/init.d/rc.local #增加脚本执行权限

# update-rc.d rc.local start 99 2 3 4 5 . stop 01 0 1 6 . #设置启动级别

若要删除脚本的启动级别运行如下命令

# update-rc.d -f rc.local remove

Linux开机启动程序详解

Linux开机启动程序详解 由于操作系统正在变得越来越复杂,所以开机引导和关机下电的过程也越来越智能化。从简单的DOS系统转移到Windows NT系统,人们已经亲身感受到了这些变化——这已不仅仅是核心操作系统的启动引导和关闭了,还包括必须要同时启动或者关闭相当数量的服务项目。类似于Windows NT,Linux系统启动过程需要打开的服务项目也是数量极大的。 这里,我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤。 加载内核 LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核。请记住此时的计算机内存中还不存在任何操作系统,PC(因为它们天然的设计缺陷)也还没有办法存取机器上全部的内存。因此,内核就必须完整地加载到可用RAM的第一个兆字节之内。为了实现这个目的,内核是被压缩了的。这个文件的头部包含着必要的代码,先设置CPU进入安全模式(以此解除内存限制),再对内核的剩余部分进行解压缩。 执行内核 内核在内存中解压缩之后,就可以开始运行了。此时的内核只知道它本身内建的各种功能,也就是说被编译为模块的内核部分还不能使用。最基本的是,内核必须有足够的代码设置自己的虚拟内存子系统和根文件系统(通常就是ext2文件系统)。一旦内核启动运行,对硬件的检测就会决定需要对哪些设备驱动程序进行初始化。从这里开始,内核就能够挂装根文件系统(这个过程类似于Windows识别并存取C盘的过程)。内核挂装了根文件系统之后,将启动并运行一个叫做init的程序。 注意:在这里我们故意略去了Linux内核启动的许多细节,这些细节只有内核开发人员才感兴趣。如果你好奇的话,可以访问http://https://www.wendangku.net/doc/031561315.html,:8080地址处的“Kernel Hackers Guide”。 init进程 init进程是非内核进程中第一个被启动运行的,因此它的进程编号PID的值总是1。init读它的配置文件/etc/inittab,决定需要启动的运行级别(Runlevel)。从根本上说,运行级别规定了整个系统的行为,每个级别(分别由0到6的整数表示)满足特定的目的。如果定义了initdefault级别,这个值就直接被选中,否则需要由用户输入一个代表运行级别的数值。 输入代表运行级别的数字之后,init根据/etc/inittab文件中的定义执行一个命令脚本程序。缺省的运行级别取决于安装阶段对登录程序的选择:是使用基于文本的,还是使用基于X-Window的登录程序。

Linux下添加脚本到开机自启动的方法

Linux下添加脚本到开机自启动的方法 Linux配置开机自启动执行脚本的方法有很多,这里分享两种方法,分别是修改/etc/rc.local方法和chkconfig管理设置的方法,均可实现Linux配置开机自启动执行脚本的功能! 设置test.sh为开机要启动的脚本 [root@oldboy scripts]# vim /server/scripts/test.sh [root@oldboy scripts]# cat /server/scripts/ test.sh #!/bin/bash /bin/echo $(/bin/date +%F_%T) >> /tmp/ test.log 方法一:修改/etc/rc.local [root@oldboy ~]# ll /etc/rc.local lrwxrwxrwx. 1 root root 13 Mar 30 10:50 /etc/rc.local -> rc.d/rc.local 修改/etc/rc.local文件 [root@oldboy scripts]# tail -n 1 /etc/rc.local /bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null 重启系统,查看结果 [root@oldboy ~]# cat /tmp/test.log 2018-03-30_12:00:10 方法二:chkconfig管理 删除掉方法一的配置

[root@oldboy ~]# vim /etc/init.d/test #!/bin/bash # chkconfig: 3 88 88 /bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null [root@oldboy ~]# chmod +x /etc/init.d/test 添加到chkconfig,开机自启动 [root@oldboy ~]# chkconfig --add test [root@oldboy ~]# chkconfig --list test test 0:off 1:off 2:off 3:on 4:off 5:off 6:off 重启系统,查看结果 [root@oldboy ~]# cat /tmp/test.log 2018-03-30_12:00:10 2018-03-30_12:33:20 操作成功 关闭开机启动 [root@oldboy ~]# chkconfig test off [root@oldboy ~]# chkconfig --list test test 0:off 1:off 2:off 3:off 4:off 5:off 6:off 从chkconfig管理中删除test [root@oldboy ~]# chkconfig --list test test 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@oldboy ~]# chkconfig --del test

设置Linux开机自动运行脚本

设置Linux开机自动运行脚本 参考资料 实现目标:在Linux启动时,自动运行位于普通用户test1根目录下的脚本程序test.py,该程序会在每次执行时自动向本地日志文件追加一条记录,源码如下: fromdatetime import datetime now=datetime.now() f=open('test.log','a') f.write('%s '%now) f.close() Linux在启动时,会自动执行/etc/rc.d目录下的初始化程序,因此我们可以把启动任务放到该目录下,有两种办法: 方案一: 1、因为其中的rc.local是在完成所有初始化之后执行,因此我们可以把启动脚本写到里面 2、用root账号登陆Linux,vi /etc/rc.d/rc.local编辑文件,在最后加入两行需要执行的脚本程序: cd /home/test1 --该步不可少,否则会提示没有权限打开'test.log'文件 su test1 -c "python /home/test1/test.py" --把要执行的命令作为一个参数传递级su 方案二: 1、init.d目录下都为可执行程序,他们其实是服务脚本,按照一定格式编写,Linux 在启动时会自动执行,类似Windows下的服务 2、用root帐号登录,vi /etc/rc.d/init.d/mystart,追加如下内容: #!/bin/bash #chkconfig:2345 80 05 --指定在哪几个级别执行,0一般指关机, 6指的是重启,其他为正常启动。80为启动的优先级,05为关闭的优先机 #description:mystart service RETVAL=0 start(){ --启动服务的入口函数 echo -n "mystartserive ..." cd /home/test1 su test1 -c "python /home/test1/test.py" }

启动过程以及各个脚本的作用

开机自检-----MBR引导-----GRUB菜单------加载内核-----允许init进程 -----读取inittab(该文件中有运行级别,初始化文件,某个运行级别所要读取的文件,然后就执行/etc/rc.d/rcn.d向对应的文件) ----/etc/rc.d/rc.sysinit(由init进程调用执行,完成设置网络主机名加载文件系统等初始化工作------/etc/rc.d/rc(由init进程调用执行,根据指定的运行级别加载或终止相应的系统服务)------/etc/rc.d/rc.nd(是个目录,目录中有级别关闭和开启的服务K S 后的数字表示启动或关闭服务的优先级,越小越好----执行/etc/rc.d/rc.local(由rc脚本执行调用,保存用户定义的所需开机后自动执行的命令,可以开启某些服务,但是却不能关闭服务,因为关机时不读取该脚本,是最后读取的文件) -----启动mingetty(启动一个虚拟终端) init进程和inittab引导指令 init进程是系统所有进程的起点,内核在完成核内引导以后,即在本线程(进程)空间内加载init程序,它的进程号是1。 init程序需要读取/etc/inittab文件作为其行为指针,inittab是以行为单位的描述性(非执行性)文本,每一个指令行都具有以下格式: id:runlevel:action:process其中id为入口标识符,runlevel为运行级别,action为动作代号,process为具体的执行程序。 id一般要求4个字符以内,对于getty或其他login程序项,要求id与tty的编号相同,否则getty程序将不能正常工作。 runlevel是init所处于的运行级别的标识,一般使用0-6以及S或s。0、1、6运行级别被系统保留,0作为shutdown动作,1作为重启至单用户模式,6为重启;S和s意义相同,表示单用户模式,且无需inittab文件,因此也不在inittab中出现,实际上,进入单用户模式时,init直接在控制台(/dev/console)上运行/sbin/sulogin。 在一般的系统实现中,都使用了2、3、4、5几个级别,在Redhat系统中,2表示无NFS支持的多用户模式,3表示完全多用户模式(也是最常用的级别),4保留给用户自定义,5表示XDM图形登录方式。7-9级别也是可以使用的,传统的Unix系统没有定义这几个级别。runlevel可以是并列的多个值,以匹配多个运行级别,对大多数action来说,仅当runlevel与当前运行级别匹配成功才会执行。 initdefault是一个特殊的action值,用于标识缺省的启动级别;当init由核心激活以后,它将读取inittab中的initdefault项,取得其中的runlevel,并作为当前的运行级别。如果没有inittab文件,或者其中没有initdefault 项,init将在控制台上请求输入 runlevel。

linux下通过脚本实现自动重启程序.doc

linux下通过脚本实现自动重启程序 linux下通过脚本实现自动重启程序 自动重启故障相信大家都遇到过,原因也有很多,跟系统,硬件或者外界因素都有关,但是在Linux中可没有那么简单。这里集中讨论linux实现自动重启程序的方法。下面一起看看! 自动重启脚本 假定需要实现重启的程序名为test ,我们这里通过判断进程数目来判断程序是否正常。 ps -ef | grep $1 | grep -v grep | wc l 是获取$1(本例中为test)的进程数,脚本根据进程数来决定下一步的操作。通过一个死循环,每隔1秒检查一次系统中的指定程序的进程数。 代码如下: 脚本check #!/bin/sh #-----------------------------------# 函数: CheckProcess# 功能: 检查一个进程是否存在# 参数: $1 --- 要检查的进程名称# 返回: 如果存在返回0, 否则返回1.#---------------------------------------CheckProcess(){ # 检查输入的

参数是否有效if [ $1 = ]; then return 1 fi #$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动PROCESS_NUM=`ps -ef | grep $1 | grep -v grep | wc -l` if [ $PROCESS_NUM -eq 1 ]; then return 0 else return 1 fi} # 检查test实例是否已经存在while [ 1 ] ; do CheckProcess test CheckQQ_RET=$? if [ $CheckQQ_RET -eq 1 ]; then# 杀死所有test进程,可换任意你需要执行的操作killall -9 test exec ./test fi sleep 1done 脚本start: 加入limit coredumpsize 102400,设置core file的大小,一旦程序Core Dump,有迹可寻。在该脚本中后台执行check脚本,可以省去很多麻烦, #!/bin/cshlimit coredumpsize 102400 ./check 补充:电脑总是自动重启怎么办 1、右击我的电脑,选择属性项。 2、在打开的系统属性窗口中选择高级系统设置项进入。

debian linux系统开机启动项管理

Debian linux系统开机启动项的管理 Table of Contents 1. 关于LINUX 的启动 (2) 1.1 LINUX的关键启动脚本 (2) 1.2 LINUX启动SHELL脚本的一般书写规则 (3) 1.3开机启动的其他方法 (4)

1. 关于linux 的启动 1.1 linux的关键启动脚本 Linux的第一个进程是0号进程,一般认为0号进程创建了1号进程,1号进程建了所有的kernel进程,1号进程是所有进程的祖先。1号进程又称init进程,init进程是所有进程之父。 init读取/etc/inittab,以下是debian系统的inittab,init就是读取这个文件获取的第一个脚本,请注意里面的粗体字,会对您理解linux的运行有一定的帮助。 # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. 默认的运行等级2 是多用户形式,这个数字也可以是1获其他的数字,关于运行等级,请见下文。在终端下,直接执行runlevel看到当前系统的默认运行等级。 id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. 下面的命令是第一个执行的,除非是在紧急模式下启动。 可以看到,第一个运行的程序是/etc/init.d/rcS,也就是说rcS就是我们系统的初始化脚本。rcS是系统的初始化脚本,而在rcS文件中,直接执行了rc程序,在rc程序中,会执行当前系统默认运行等级下的所有要运行的脚本,这些脚本存放在rc?.d文件夹中(“?”是一个数字,运行等级是2的话就是rc2.d文件夹),在rc?.d文件夹中是以{K或S}{num}{name}命名的链接,这些链接至/etc/init.d/文件夹下的脚本,如果是K,那么意味着向/etc/init.d/下对应name的脚本传入stop 参数,如果是S开头的链接,意味着传入start参数 si::sysinit:/etc/init.d/rcS …到此,和我们的开机启动关系密切的代码已经结束了,当然,不排除在用户登录之后有针对用户的开机启动项目 # What to do in single-user mode. ~~:S:wait:/sbin/sulogin …

linux(凝思) 网卡绑定方法

linux系统里面有一个内置的nameif的命令可以实现网卡绑定的功能 方法:可以写一个脚本,然后将脚本设置为开机启动即可。 参考如下: (1) 首先写一个脚本,脚本路径为/etc/rc.d/init.d,脚本内容如下(针对两块网卡): #cat /etc/rc.d/init.d/nameif.sh #!/bin/sh /sbin/nameif -s a0 00:E0:81:D3:30:74 /sbin/nameif -s a1 00:E0:81:D3:30:76 /sbin/nameif -s eth0 00:E0:81:D3:30:74 /sbin/nameif -s eth1 00:E0:81:D3:30:76 注释:此处的MAC为举例用的,应根据自己机器的实际情况来编写脚本。 (2) 写完脚本后,给脚本加权限 chmod 777 /etc/rc.d/init.d/nameif.sh (3) 然后在对应的启动级别里做一个开机启动的连接,注意,nameif脚本需要执行在 network网络启动之前,否则无法生效 #cd /etc/rc.d/rc3.d #ln -s /etc/rc.d/init.d/nameif.sh S016nameif #cd /etc/rc.d/rc5.d #ln -s /etc/rc.d/init.d/nameif.sh S016nameif 注释:由于内核里面事先记录了eth[0-1*]的网卡名字信息,若直接对eth*进行绑定的话,会存在网卡名字占用的问题,由此会造成设置无法生效。所有上面所写的脚本里面首先将网卡的MAC地址赋给其他的名字,然后在重新指定给eth*,即可解决这个问题

linux开机启动脚本的顺序

linux开机启动脚本的顺序 如果服务器重启之后需要手工开启许多服务、工作及以后的维护相对比较繁琐、特地总结了下linux下开机自动启动脚本所涉及的知识和方法、如下: 1、相关基础知识点 1)redhat的启动方式和执行次序是: 加载内核 执行init程序 /etc/rc.d/rc.sysinit # 由init执行的第一个脚本 /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式 /etc/rc.d/rc.local #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中) /sbin/mingetty # 等待用户登录 在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括: 调入keymap以及系统字体 启动swapping 设置主机名 设置NIS域名 检查(fsck)并mount文件系统 打开quota 装载声卡模块 设置系统时钟 等等。 /etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的 ,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx 从小到大来执行。(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用 /etc/rc.d/rc3.d/下的脚本。 值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中 的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。 init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的 action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。 至此,LINUX的启动结束。 2)init运行级别及指令 一、什么是INIT: init是Linux系统操作中不可缺少的程序之一。

Linux系统如何设置开机自动运行脚本

在Windows 下,我们有很多方法可以设置开机启动,但在Linux 系统下我们需要如何操作呢? Linux 下同样可以设置开机启动,但可能需要我们敲一些命令(可能也有 UI 界面的设置方法,但我不熟,我更多是玩命令)。下面我们就介绍三种简单但可行的开机启动设置方法。 方法一:修改/etc/rc.d/rc.local 文件 /etc/rc.d/rc.local 文件会在 Linux 系统各项服务都启动完毕之后再被运行。所以你想要自己的脚本在开机后被运行的话,可以将自己脚本路径加到该文件里。 但是,首先需要确认你有运行这个文件的权限。 $ chmod +x /etc/rc.d/rc.local 为了演示,我们创建了一个脚本,当它被执行之后,将在家目录下写入有特定信息的文件。 $ vim auto_run_script.sh #!/bin/bash date >> /home/alvin/output.txt hostname >> /home/alvin/output.txt 保存退出后,再给它赋予可执行权限: $ chmod +x auto_run_script.sh 然后,我们再将脚本添加到/etc/rc.d/rc.local文件最后一行: $ vim /etc/rc.d/rc.local /home/alvin/auto_run_script.sh 接下来,我们就可以试试效果了。直接重启系统就可以了: $ sudo reboot 重启之后,就会在家目录下看到脚本执行的结果了。 方法二:使用crontab 大家知道,crontab 是 Linux 下的计划任务,当时间达到我们设定的时间时,可以自动触发某些脚本的运行。 我们可以自己设置计划任务时间,然后编写对应的脚本。但是,有个特殊的任务,叫作@reboot,我们其实也可以直接从它的字面意义看出来,这个任务就是在系统重启之后自动运行某个脚本。 那它将运行的是什么脚本呢?我们如何去设置这个脚本呢?我们可以通过crontab -e来设置。 $ crontab -e @reboot /home/alvin/auto_run_script.sh 然后,直接重启即可。运行的效果跟上面类似。 方法三:使用systemd 服务 以上介绍的两种方法,在任何 Linux 系统上都可以使用。但本方法仅适用于systemd系统。如何区分是不是systemd系统?很简单,只需运行ps aux命令,查看pid为1的进程是不是systemd 。 为了实现目的,我们需要创建一个 systemd 启动服务,并把它放置在/etc/systemd/system/目录下。

在linux下设置开机自动启动程序的方法

下面用自启动apache为例; 自启动脚本: /usr/local/apache2/bin; ./apachectl start 文件位于/etc/rc.d/init.d下,名为apached, 注意要可执行. #chmod +x /etc/rc.d/init.d/apached //设置文件的属性为可执行 #ln -s /etc/rc.d/init.d/apached /etc/rc3.d/S90apache //建立软连接,快捷方式 #ln -s /etc/rc.d/init.d/apached /etc/rc0.d/K20apache 在Red Hat Linux中自动运行程序 1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或/etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑/etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window。 2.登录时自动运行程序 用户登录时,bash首先自动执行系统管理员建立的全局登录script :/etc/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、/.profile,但只执行最先找到的一个。 因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。 3.退出登录时自动运行程序 退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout 中加入命令"tar -cvzf c.source.tgz *.c",则在每次退出登录时自动执行 "tar" 命令备份*.c 文件。 4.定期自动运行程序 Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。 例如,建立文件crondFile,内容为"00 9 23 Jan * HappyBirthday",运行"crontab cronFile"命令后,每当元月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几)。 5.定时自动运行程序一次 定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令: $ at 12:00 at>mailto Roger -s ″Have a lunch″ < plan.txt

Linux下配置jdk+tomcat【附:设置tomcat自动启动,jsvc方式】

Linux下配置jdk+tomcat 操作系统 CentOS5.3 所需软件包 jdk-6u4-linux-i586-rpm.bin apache-tomcat-6.0.29.tar.gz 注意:选择用什么包的时候要注意,jdk包最好选择较高版本,否则tomcat可能无法启动以本文为例,安装tomcat6.0和5.0时,如果用的是jdk1.4版本则tomcat无法启动,而用jdk1.5之后的版本就可以 1、安装JDK 1.安装包拷贝到/home目录下(当然别的目录也可以,个人习惯) 进入安装目录 [root@radius2 ~]#cd /home ---将jdk程序包复制到/usr/local目录下 [root@radius2 home]#cp jdk-6u4-linux-i586-rpm.bin /usr/local ---转到/usr/local目录下 [root@radius2 home]#cd /usr/local 给所有用户添加可执行的权限 [root@radius2 local]#chmod +x jdk-6u4-linux-i586-rpm.bin [root@radius2 local]#./jdk-6u4-linux-i586-rpm.bin ----此时会生成文件jdk-6u4-linux-i586-rpm,同样给所有用户添加可执行的权限 [root@radius2 local]#chmod +x jdk-6u4-linux-i586-rpm 安装程序 [root@radius2 local]#rpm -ivh jdk-6u4-linux-i586-rpm 出现安装协议等,按接受即可。 2.设置环境变量: vi /etc/profile 编辑/etc/profile文件。在文件末尾加入 export JA VA_HOME=/usr/java/jdk1.6.0_23 export PA TH=$JA V A_HOME/bin:$JA V A_HOME/jre/bin:$PATH export CLASSPATH=.:/usr/java/jdk1.6.0_23/lib:/usr/java/jdk1.6.0_23/jre/lib:$CLASSPATH 保存退出后可执行以下命令即时生效 [root@radius2 local]#source /etc/profile 3.检查JDK是否安装成功。 #java -version 如果看到JVM版本及相关信息,即安装成功! 3、安装TOMCAT

Linux中把weblogic做成开机自动启动

1.创建/etc/init.d/weblogic文件,文件内容如下: #!/bin/bash # chkconfig: 35 99 05 #description: Weblogic Server #Please eidt the Variable export BEA_BASE=/u02/weblogic/Oracle/Middleware export BEA_HOME=$BEA_BASE/user_projects/domains/base_domain export BEA_LOG=/var/log/weblogic.log export PA TH=$PATH:$BEA_HOME/bin BEA_OWNER=weblogic start(){ echo -n "starting weblogic..." su - "$BEA_OWNER"< $BEA_LOG 2>&1 & EOO } stop(){ echo -n "stop weblogic..." su - "$BEA_OWNER"<> $BEA_LOG EOO } case "$1" in start) touch /var/lock/weblogic start echo "OK" ;; stop) rm -rf /var/lock/weblogic stop echo "OK" ;; restart) stop sleep 3 start ;; *) echo "$0{start|stop|reload|restart}" exit 1 ;; esac exit 0

LINUX 服务器下流量监控报警系统SHELL 脚本实现

关键词:云计算;网络信息安全;服务器集群;负载均衡 ddos 中图分类号:tp393 文献标识码:a 文章编号:1009-3044(2015)09-0061-02 分布式拒绝服务攻击采取的攻击手段就是分布式的,在攻击的模式改变了传统的点对点的攻击模式,使攻击方式出现了没有规律的情况,而且在进行攻击的时候,通常使用的也是常见的协议和服务,这样只是从协议和服务的类型上是很难对攻击进行区分的。在进行攻击的时候,攻击数据包都是经过伪装的,在源ip 地址上也是进行伪造的,这样就很难对攻击进行地址的确定,在查找方面也是很难的。这样就导致了分布式拒绝服务攻击在检验方法上是很难做到的。 此流量监控报警系统是在centos 7 版本下使用shell脚本撰写的,通过邮件报警。现在智能手机的普及,邮件也能像短信即使告警,通知服务器运维人员。此脚本包包含主程序、子程序、配置文件、邮件引擎、输出日志等。 主程序:作为整个脚本的入口,是整个系统的命脉。 配置文件:是一个控制中心,用它来开关各个子程序,指定各个相关联的日志文件。 子程序:这个才是真正的监控脚本,用来监控各个指标。 邮件引擎:是原本是由一个php程序来实现,它可以定义发邮件的服务器、发邮件人以及收邮件人。但是如果发表在本论文里,会导致篇幅过长,所以调用了系统自带的mailx邮件引擎。 输出日志:整个监控系统要有日志输出。 我们的机器角色多种多样,但是所有机器上都要部署同样的监控系统,也就说所有机器不管什么角色,整个程序框架都是一致的,不同的地方在于根据不同的角色,定制不同的配置文件。 程序架构: monitor/bin/main.sh monitor/conf/mon.conf monitor/mail/mail.sh 其中bin下是主程序,conf下是配置文件,mail下是邮件引擎,log下是日志及需要发送的邮件内容。此脚本包中的程序是使用的相对路径,如果使用该脚本包请按照以上程序架构对应的路径。 1)main.sh #! /bin/bash export send=1 # #报警控制开关## if [ $last_dir == "bin" ]; then conf_file="../conf/mon.conf" else echo "you shoud cd bin dir" exit fi exec 1>>../log/main.log 2>>../log/main_err.log sleep 60 ##一分钟控制时间,一分钟检测一次## if grep -q 'to_mon_traffic=1' $conf_file; then ##当前10秒瞬时流量及10秒平均流量,以防单一秒内瞬时流量骤增,导致误判## fi if [ $traffic_value > 1 ] && [ $send == 1 ]; then

linux学习-将seafile启动脚本设置为开机启动服务

有时候,我们安装的linux软件和程序不是通过yum安装,而是通过编译或者其他方式安装。有时需要将程序设置为服务,达到开机启动的目的。 我在公有云的与服务器上搭建了seafile网盘,当我重启云服务器的时候,seafi le的程序不会自动启动,需要我在相关目录下执行脚本,才能启动。 将两个脚本使用软连接到/root/目录下,方便执行 现在采用服务的方式,将这这两个脚本加入开机启动 创建systemd 服务文件/etc/systemd/system/sea file.service vim /etc/systemd/system/seafile.service =======================内容如下========================

[Unit] Description=Seafile # add mysql.service or postgresql.service depending on your database to the line below After=network.target [Service] Type=oneshot ExecStart=/home/cloud_storage/seafile-server-latest/seafile.sh start ExecStop=/home/cloud_storage/seafile-server-latest/seafile.sh stop RemainAfterExit=yes User=seafile Group=seafile [Install] WantedBy=multi-user.target 这个文件由三个部分组成:Unit\Service\Install [Unit]主要是为了解决依赖关系。常见的添加Requires、After,如果这个依赖是可选的,那么是Wants、After。依赖关系通常被用在服务(service)而不是(t arget)上,所以上述的httpd所依赖的仅仅是一些target,因而也就没有Requi res和Wants出现。 [service]可选择几种不同的服务启动方式,启动方式通过Type参数进行设置。Type=simple(默认值):systemd认为该服务将立即启动。服务进程不会fork。 如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型。 Type=forking:systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定PIDFile=,以便systemd能够跟踪服务的主进程。 Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置RemainAfterExit=yes 使得systemd 在服务进程退出之后仍然认为服务处于激活状态。 Type=notify:与Type=simple 相同,但约定服务会在就绪后向systemd 发送一个信号。这一通知的实现由libsystemd-daemon.so 提供。

linux自动重启tomcat脚本

linux 自动重启tomcat 脚本 博客分类: linux相关 Tomcat作为开源的服务器,性能与稳定性上比起一些商业服务器还是要差一些。将项目部署到Tomcat后隔段时间就会死掉,出现这种问题的主要原因可能是内存数据溢出,因为Tomcat容器在发生大量与数据库交互查询或者操作的时候很容易出现问题。定时重启是一个很好的补救措施,定时重启可以定时的清理内存也降低了Tomcat运行的风险,从而保持tomcat的最佳性能。 一、写一个shell脚本mytt.sh,重新启动tomcat Java代码 1.#!/bin/sh 2.pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | a wk '{print $2}'` 3.echo $pid 4.if [ -n "$pid" ] 5.then 6.{ 7. echo ===========shutdown================ 8. /usr/local/tomcat/bin/shutdown.sh 9. sleep 2 10. pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk '{print $2}'` 11. if [ -n "$pid" ] 12. then 13. { 14. sleep 2 15. echo ========kill tomcat begin============== 16. echo $pid 17. kill -9 $pid 18. echo ========kill tomcat end============== 19. } 20. fi 21. sleep 2 22. echo ===========startup.sh============== 23. /usr/local/tomcat/bin/startup.sh 24.} 25.else 26.echo ===========startup.sh============== 27./usr/local/tomcat/bin/startup.sh

Linux运行级别

Linux的运行级别 代号说明 0所有进程将被终止,机器将有序的停止,关机时系统处于这个运行级别1单用户模式。用于系统维护,只有少数进程运行,同时所有服务也不启动2多用户模式。和运行级别3一样,只是网络文件系统(NFS)服务没被启 动 3多用户模式。允许多用户登录系统,是系统默认的启动级别 4留给用户自定义的运行级别 5多用户模式,并且在系统启动后运行X-Window,给出一个图形化的登 录窗口 6所有进程被终止,系统重新启动 2.Linux网络基础配置 查看TCP/IP 配置TCP/IP

检查TCP/IP的配置 守护进程和xinetd 3.查看tcp/ip参数 Tcp/ip图解参数 1.Ifconfig ethx 查看ethx的参数 2.Ifconfig 查看所有网卡的参数 3.Ifdown ethx 关闭某块网卡 ifup ethx 开启某块网卡 4.Service network restart 重启所有网络接口 Example: Ifconfig eth0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255这种方式更改的ip地址只对本次登陆有效,重启之后不保存。Ifconfig eth0 down = ifdown eth0 ( 关闭网卡1) Ifconfig eth0 up = ifup eth0 (打开网卡1) HWaddr: 网卡的MAC地址 Inet addr: Internet Addrss,主机的IP地址 Bcast: 网络的广播地址用于发送信息给同一 网络中的其它计算机 Mask: 子网掩码

Linux中脚本开机自启动

linux添加开机自启动脚本示例详解 Linux下(Ubuntu12)添加开机自启动脚本有两种方法: 一、在/etc/rc.local中添加 如果不想将脚本粘来粘去,或创建链接什么的。则: step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行; step2. 再在/etc/rc.local中添加一行以绝对路径启动脚本的行(在exit 0这一行前添加);如: $ vim /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /home /farsight/Shell/test1.sh 注:这是脚本文件的绝对路径 exit 0 保存并退出;

再重启动测试下,则在其它的程序都启动完成后,将启动脚本; 二、可设定启动优先级的高级开机自启动脚本 1. 查看服务是否自启动 查看服务的当前状态 #service servicename status 查看服务的开机自动启动状态 #chkconfig --list servicename 1. 写好脚本,如mysql,把它放到/etc/init.d 下,修改属性: $ sudo chmod x mysql 2. 创建符号连接: $ cd /etc 下面有这么几个目录值得注意: rcS.d rc0.d rc1.d ... rc6.d , (0,1…….6 代表启动级别0代表停止,1代表单用户模式,2-5代表多用户模式,6代表重启) 它们的作用就相当于redhat 下的rc.d , 你可以把脚本放到rcS.d,然后修改文件名,给它一个启动序号,如: S88mysql. 不过最好的办法是放到相应的启动级别下面。 具体作法:

Linux配置开机自启动执行脚本方法

Linux配置开机自启动执行脚本方法 Linux配置开机自启动执行脚本的方法有很多,这里分享两种方法,分别是修改/etc/rc.local方法和chkconfig管理设置的方法,均可实现Linux配置开机自启动执行脚本的功能! 设置test.sh为开机要启动的脚本 [root@oldboy scripts]# vim /server/scripts/test.sh [root@oldboy scripts]# cat /server/scripts/ test.sh #!/bin/bash /bin/echo $(/bin/date +%F_%T) >> /tmp/ test.log 方法一:修改/etc/rc.local [root@oldboy ~]# ll /etc/rc.local lrwxrwxrwx. 1 root root 13 Mar 30 10:50 /etc/rc.local ->rc.d/rc.local 修改/etc/rc.local文件 [root@oldboy scripts]# tail -n 1 /etc/rc.local /bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null 重启系统,查看结果 [root@oldboy ~]# cat /tmp/test.log 2018-03-30_12:00:10 方法二:chkconfig管理 删除掉方法一的配置 [root@oldboy ~]# vim /etc/init.d/test

#!/bin/bash # chkconfig: 3 88 88 /bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null [root@oldboy ~]# chmod +x /etc/init.d/test 添加到chkconfig,开机自启动 [root@oldboy ~]# chkconfig --add test [root@oldboy ~]# chkconfig --list test test 0:off 1:off 2:off 3:on 4:off 5:off 6:off 重启系统,查看结果 [root@oldboy ~]# cat /tmp/test.log 2018-03-30_12:00:10 2018-03-30_12:33:20 操作成功 关闭开机启动 [root@oldboy ~]# chkconfig test off [root@oldboy ~]# chkconfig --list test test 0:off 1:off 2:off 3:off 4:off 5:off 6:off 从chkconfig管理中删除test [root@oldboy ~]# chkconfig --list test test 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@oldboy ~]# chkconfig --del test [root@oldboy ~]# chkconfig --list test

相关文档
相关文档 最新文档