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

合集下载

Linux下定时执行脚本

Linux下定时执行脚本

Linux下定时执行脚本今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。

Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cron这个目录。

下面看一下具体的用法:首先查看一下/etc/crontab文件:$ cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# run-parts01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly前四行是有关设置cron任务运行的环境变量。

SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。

Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。

如果MAILTO变量定义为空字符串(MAILTO=""),电子邮件不会被发送。

执行命令或脚本时HOME变量可用来设置基目录。

文件/etc/crontab中每行任务的描述格式如下:minute hour day month dayofweek commandminute - 从0到59的整数hour - 从0到23的整数day - 从1到31的整数 (必须是指定月份的有效日期)month - 从1到12的整数 (或如Jan或Feb简写的月份)dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示) command - 需要执行的命令(可用as ls /proc >> /tmp/proc或执行自定义脚本的命令)root表示以root用户身份来运行run-parts表示后面跟着的是一个文件夹,要执行的是该文件夹下的所有脚本对于以上各语句,星号(*)表示所有可用的值。

Linux—添加开机启动(服务脚本)

Linux—添加开机启动(服务脚本)

Linux—添加开机启动(服务脚本)系统启动时需要加载的配置⽂件/etc/profile、/root/.bash_profile/etc/bashrc、/root/.bashrc/etc/profile.d/*.sh、/etc/profile.d/lang.sh/etc/sysconfig/i18n、/etc/rc.local(/etc/rc.d/rc.local)⼀、修改开机启动⽂件:/etc/rc.local(或者/etc/rc.d/rc.local)# 1.编辑rc.local⽂件[root@localhost ~]# vi /etc/rc.local# 2.修改rc.local⽂件,在 exit 0前⾯加⼊以下命令。

保存并退出。

/etc/init.d/mysqld start # mysql开机启动/etc/init.d/nginx start # nginx开机启动supervisord -c /etc/supervisor/supervisord.conf # supervisord开机启动/bin/bash /server/scripts/test.sh >/dev/null2>/dev/null# 3.最后修改rc.local⽂件的执⾏权限[root@localhost ~]# chmod +x /etc/rc.local[root@localhost ~]# chmod755 /etc/rc.local⼆、⾃⼰写⼀个shell脚本将写好的脚本(.sh⽂件)放到⽬录 /etc/profile.d/ 下,系统启动后就会⾃动执⾏该⽬录下的所有shell脚本。

三、通过chkconfig命令设置# 1.将(脚本)启动⽂件移动到 /etc/init.d/或者/etc/rc.d/init.d/⽬录下。

(前者是后者的软连接)mv /www/wwwroot/test.sh /etc/rc.d/init.d# 2.启动⽂件前⾯务必添加如下三⾏代码,否侧会提⽰chkconfig不⽀持。

开机自启动-AIX-Linux_HP-UX原理及配置

开机自启动-AIX-Linux_HP-UX原理及配置

AIX/etc/inittab init守护进程运行,init会打开/etc/inittab,并且执行里面的内容。

(文件部分内容)/etc/rc.d 是inittab里的一组脚本指向开机自动运行方法:1)直接修改inittab文件,使系统在开机重启时运行我们的命令。

2)通过rc.local启动rc.local是inittab里的一个脚本指向,果inittab文件里没有关于rc.local的信息,可以通过此命令创建脚本mkitab -i rcnfs "rc.local:2:once:/etc/rc.local > /dev/console 2>&1"touch /etc/rc.local #新建rc.local文件chmod 700 /etc/rc.local #设置执行权限执行脚本放到/etc/rc.local里之后,AIX系统在重新启动时,就会运行/etc/rc.local里的脚本了。

3)通过/etc/rc.d脚本启动(需要编写start\stop脚本)Linux/etc/inittab 这个文件设定了init进程怎样把系统引导成某种运行级别(不含服务启动脚本内容)(文件部分内容)Xinetd extended internet daemon 新一代网络守护进程服务,又叫超级internet服务器增强了一些网络访问控制功能。

/etc/init.d –> /etc/rc.d/init.d (软连接) 目录下为系统各服务启动脚本包括xinetd/etc/rc.d/rcn.d (n就是运行级0-6) /etc/rc.d/init.d下脚本用ln 命令连接到/etc/rc.d/rcn.d 目录redhat的启动方式和执行次序:1)加载内核2)执行init程序3)/etc/rc.d/rc.sysinit # 由init执行的第一个脚本4)/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式5)/etc/rc.d/rc.local #相应级别服务启动之后、在执行该文件6)/sbin/mingetty # 等待用户登录开机自动运行方法:1)在上面第4步中创建服务,在/etc/rc.d/init.d目录创建服务启动脚本。

如何实现linux下未登录和登录时自启动服务

如何实现linux下未登录和登录时自启动服务

如何实现linux下自启动服务如何在系统用户未登录前自启动嵌入自己所写的服务(可执行程序myftp)?这里介绍三种经我验证过的可行的办法:方法一: 编辑rc.local,在里面添加可执行所在路径vi /etc/rc.d/rc.local;进入编辑模式, 在该文件中添加/mnt/hgfs/su/myftp (/mnt/hgfs/su是文件存放路径可变);保存,重启ok;方法二: 可以把myftp的执行路径写到一个脚本中(su.sh)在脚本中添加命名/mnt/hgfs/su/myftp修改文件的执行权限chmodu+x su.sh再进入/etc/rc.d/rc.local中添加/mnt/hgfs/su/su.sh (/mnt/hgfs/su是文件存放路径可变)保存,重启方法三: 由于前面两个都要手动去更改去编辑rc.local下文本的内容,有些麻烦,如果用程序来实现更加麻烦,,所以推荐使下面这种方法.将myftp的执行路径写到一个脚本中(su.sh) 方法参照方法二但有一点需注意要将su.sh 里面的#!/bin/sh部分改为#!/bin/sh## chkconfig: 2345 97 00# description:myftp auto#(这个是运用chkconfig命令能识别并为该脚本建立软连接的保证)其中2345 代表服务可在哪个运行级别下启动,97代表软连接启动的序号;00 代表软连接关闭的序号( 序号低总比序号高的先执行)将su.sh拷贝到/etc/rc.d/init.d下命令: cp /mnt/hgfs/su/su.sh /etc/rc.d/init.d下chkconfig–add su.sh重启如何在系统用户登录后自启动自己所写的服务(可执行程序myftp)?用户登录时,bash首先自动执行系统管理员建立的全局登录script :/etc/profile。

然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、/.profile,但只执行最先找到的一个。

Linux中执行shell脚本命令的4种方法总结

Linux中执行shell脚本命令的4种方法总结

Linux中执⾏shell脚本命令的4种⽅法总结bash shell 脚本的⽅法有多种,现在作个⼩结。

假设我们编写好的shell脚本的⽂件名为hello.sh,⽂件位置在/data/shell⽬录中并已有执⾏权限。

⽅法⼀:切换到shell脚本所在的⽬录(此时,称为⼯作⽬录)执⾏shell脚本:复制代码代码如下:cd /data/shell./hello.sh./的意思是说在当前的⼯作⽬录下执⾏hello.sh。

如果不加上./,bash可能会响应找到不到hello.sh的错误信息。

因为⽬前的⼯作⽬录(/data/shell)可能不在执⾏程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。

查看PATH的内容可⽤ echo $PASH 命令。

现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执⾏。

⽅法⼆:以绝对路径的⽅式去执⾏bash shell脚本:复制代码代码如下:/data/shell/hello.sh⽅法三:直接使⽤bash 或sh 来执⾏bash shell脚本:复制代码代码如下:cd /data/shellbash hello.sh或复制代码代码如下:cd /data/shellsh hello.sh注意,若是以⽅法三的⽅式来执⾏,那么,可以不必事先设定shell的执⾏权限,甚⾄都不⽤写shell⽂件中的第⼀⾏(指定bash路径)。

因为⽅法三是将hello.sh作为参数传给sh(bash)命令来执⾏的。

这时不是hello.sh⾃⼰来执⾏,⽽是被⼈家调⽤执⾏,所以不要执⾏权限。

那么不⽤指定bash路径⾃然也好理解了啊,呵呵……。

⽅法四:在当前的shell环境中执⾏bash shell脚本:复制代码代码如下:cd /data/shell. hello.sh或复制代码代码如下:cd /data/shellsource hello.sh前三种⽅法执⾏shell脚本时都是在当前shell(称为⽗shell)开启⼀个⼦shell环境,此shell脚本就在这个⼦shell环境中执⾏。

linux_下的crontab如何使用

linux_下的crontab如何使用

linux 下的crontab如何使用crontab命令的功能是在一定的时间间隔调度一些命令的执行。

在/etc目录下有一个crontab 文件,这里存放有系统运行的一些调度程序。

每个用户可以建立自己的调度crontab。

cron 的主配置文件是/etc/crontab,它包括下面几行:SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# run-parts01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly前四行是用来配置cron 任务运行环境的变量。

SHELL 变量的值告诉系统要使用哪个shell 环境(在这个例子里是bash shell);PATH 变量定义用来执行命令的路径。

cron 任务的输出被邮寄给MAILTO 变量定义的用户名。

如果MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。

HOME 变量可以用来设置在执行命令或脚本时使用的主目录。

/etc/crontab 文件中的每一行都代表一项任务,它的格式是:minute hour day month day_of_week commandminute —分钟,从0 到59 之间的任何整数hour —小时,从0 到23 之间的任何整数day —日期,从1 到31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)month —月份,从1 到12 之间的任何整数(或使用月份的英文简写如jan、feb 等等)dayofweek —星期,从0 到7 之间的任何整数,这里的0 或7 代表星期日(或使用星期的英文简写如sun、mon 等等)command —要执行的命令(命令可以是ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。

linux设定定时执行任务_oracle,arcGIS-精选

linux设定定时执行任务_oracle,arcGIS-精选

Linux 设定定时执行任务说明一、编写定时执行时的命令1) 将需要定时执行的命令写入.sh 文件。

例如:停止weblogic 服务。

编写autoStop.sh 如下:su - w eblogic -c '/usr/weblogic103/user_projects/domains/base_domain/bin/stopWebLogic.sh '启动weblogic 服务。

编写autoStart.sh 如下:su -weblogic -c '/usr/weblogic103/user_projects/domains/base_domain/startWebLogic.sh '其中:weblogic 为安装weblogic 时创建的用户。

weblogic 服务必须使用安装时创建的用户启动。

/usr/weblogic103/user_projects/domains/base_domain/startWebLogic.sh 为weblogic 启动命令所在的路径。

其他su 的参数请参考附录之“1)su 命令的使用”来了解深入。

2) autoStart.sh ,autoStop.sh 必须有被执行的权限。

root 用户登录,执行下列命令。

chmod a+x autoStop.shchmod a+x autoStart.sh3) oracle 服务启动,编写批处理文件autoStart.sh 如下:export ORACLE_HOME=/u01/oracle/product/10.2.0/db_1 // 设置oracle_homeexport PATH=$ORACLE_HOME/bin:/usr/sbin:$PATHsu - oracle //oracle 为安装oralce 时创建的用户名sqlplus /nologconnect / as sysdbalsnrctl startstartupexitexit停止oracle 服务,编写批处理文件autoStop.sh 如下:export ORACLE_HOME=/u01/oracle/product/10.2.0/db_1 // 设置oracle_homeexport PATH=$ORACLE_HOME/bin:/usr/sbin:$PATHsu - oracle //oracle 为安装oralce 时创建的用户名sqlplus /nologconnect / as sysdbashutdown immediatelsnrctl stopexitexit4) ArcGIS 服务的启动也类似。

Linux系统自动化运维脚本使用Shell脚本实现对Linux系统运维工作的自动化执行

Linux系统自动化运维脚本使用Shell脚本实现对Linux系统运维工作的自动化执行

Linux系统自动化运维脚本使用Shell脚本实现对Linux系统运维工作的自动化执行Linux系统的运维工作对于系统管理员来说是非常繁琐而重要的,为了提高效率和减少人为错误,自动化运维脚本被广泛使用。

而Shell脚本则是一种强大的工具,可以通过编写脚本来实现对Linux系统的自动化运维工作。

本文将通过介绍Shell脚本的基本用法和示例,探讨如何使用Shell脚本来实现对Linux系统的自动化运维。

一、Shell脚本的基本概念和用法Shell是一种命令行解释器,常用的有Bash、Csh、Ksh等。

Shell脚本是一系列Shell命令的集合,可以通过编写脚本来实现对系统的自动化操作。

下面是一些Shell脚本的基本用法:1. Shebang每个Shell脚本的第一行都需要指定Shebang,即告诉系统使用哪种Shell执行该脚本。

常见的Shebang是#!/bin/bash。

2. 变量的定义和使用Shell脚本使用变量可以方便地存储和操作数据。

变量的定义格式为:变量名=值,例如:name="John"。

使用变量时需要在变量名前加上美元符号,例如:echo $name。

3. 条件语句可以使用条件语句来实现根据条件执行不同的操作。

常见的条件语句有if语句和case语句。

例如:```if [ $num -gt 10 ]; thenecho "The number is greater than 10."fi``````case $fruit in"apple")echo "It's an apple.";;"orange")echo "It's an orange.";;*)echo "Unknown fruit.";;esac```4. 循环语句循环语句可以用来重复执行一段代码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在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/目录下。

我们创建的systemd 启动服务如下。

请注意,这时后缀是.service,而不是.sh。

$ vim auto_run_script.service
[Unit]
Description=Run a Custom Script at Startup
After=default.targe
[Service]
ExecStart=/home/alvin/auto_run_script.sh
[Install]
WantedBy=default.target
从服务的内容可以看出来,我们最终还是会调用
/home/alvin/auto_run_script.sh 这个脚本。

然后,我们再把这个脚本放置在/etc/systemd/systerm/目录下,之后我们再运行下面两条命令来更新systemd 配置文件,并启动服务。

$ systemctl daemon-reload
$ systemctl enable auto_run_script.service
万事俱备之后,我们就可以重启系统啦。

$ reboot。

相关文档
最新文档