∮Linux 使用的两个小技巧 开启启动脚本 和 环境变量问题

§1.开机启动脚本 && 周期任务

环境 CentOS7:3.10.0-327.el7.x86_64

# head /etc/init.d/network

其中有一行是 # chkconfig: 2345 10 90

这行太重要了,不要被他 开头的 # 键骗了... 如果没有这行,此脚本就不能作为开机自动启动的脚本

这样的意思是 在 运行级别切换到 2345时自动运行一次. 开始次序是 S10 关闭次序是 K90 (开始的比较早,关闭也比较早)

其他的 # 开头的行,好像就都是瞎鬼了...是 真正的注释了

现在写一个自己的脚本,在一些 集群服务中,时间同步很重要~ 这里就写一个 开机自动同步时间的脚本

# vim /etc/init.d/ntp.sh

#!/bin/bash

# chkconfig: 2345 80 90

# discription: 这行根本不重要,别想骗到我...

ntpdate time.nist.gov

# chmod +x /etc/init.d/ntp.sh

下面将这个脚本添加为开机自动运行的脚本

其实方法有挺多种,比如 #chkconfig ntp.sh on # chkconfig ntp.sh off,但是我一般不用,因为 off 的不彻底...

再比如 #chkconfig --level 35 ntp.sh on #chkconfig --level 35 ntp.sh off,但是我也不用

因为我已经在文件中定义了启动级别,虽然他是以命令中 --levelv ### 为准,但总有 混淆视听的感觉...

嗯嗯,我自己写的脚本不用这种方法,但是如果是 安装的其他软件,这样操作还是挺方便的,比如 mariadb,ngx,sshd,crond 什么的

操作方法是 # chkconfig --level 2345 mariadb {on|off}

# chkconfig --level 2345 nginx {on|off}

对,以上方法我都不用....

我使用的是下面的方法

# chkconfig --add ntp.sh 这里看起来像一的东西不是两个杆,就是中文字符 一...

# ls /etc/rc.d/rc3.d/ 你会发现一个叫 S80ntp.sh 的文件

# chkconfig --del ntp.sh 这样操作比较 "彻底"

# ls /etc/rc.d/rc3.d/ 比较彻底

OK, 无论你以那种方式 添加了 开机自动启动的脚本,你都可以把 这个脚本当成一个服务进行控制了

# systemctl start ntp 这里就别加 .sh 了,实际上,脚本的第一行已经标明了程序的执行路径,

就是 /bin/bash 连文件本身的后缀名都根本不需要~

# systemctl status ntp 查看一下这个"服务"的状态,...执行成功,现在是 exited 状态...

其实 硬件时钟,偶尔会失准... 这里搞一个周期任务,每小时 来 想 时间服务器同步时间嗯嗯

实际上 crontab 的环境变量问题是 十分坑爹的,所以,我一般给定全 路径.

# whereis ntpdate

# crontab -e -l查看 -r删除 -...想不起来了 man是查看帮助文档

#* * * * * ntpdate time.nist.gov > /dev/null 2>&1

# 上面这行是没法执行的,至少在我的机器上

1 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1

上面的 五个星号是五个时间周期, # cat /etc/crontab 已经说的很清楚了 聪明的你,一看就能懂

唯一需要注意的就是, 星期几 和 日期可能会出现矛盾,所以,这俩只定义一个就好了,我上面定义的是一个小时任务

意思是每小时的 第一分钟执行一次时间同步,无论是否成功都别 TMD 的别发邮件烦我.. 当然我之前测试过,是可以成功的.

* * * * *        每分钟执行一次

3 * * * *        每小时的第三分钟

4 5 * * 5         每周五 的 5:40

7 8 9 10 *         10月9日 8:07

9 8 * * 3,0         周三和周日的 8:09

0 9-18 * * *         9点 - 18点 每小时执行一次

* */5 * * *         每 5小时 执行一次

§2.环境变量

我和我对象说,孔乙己知道 回 字有四种写法.你不该把时间浪费在 回字四种写法的知识上.

你也不要炫耀你知道回字有四种写法. 如果已经知道了,应该以此为耻:我曾花费精力去了解了回字的四种写法...

# echo $PATH 查看当前系统的环境变量

现在我想加入自己的环境变量 我 # vim /etc/profile

It's NOT a good idea to change this file unless you know what you

are doing. It's much better to create a custom.sh shell script in

/etc/profile.d/ to make custom changes to your environment, as this

will prevent the need for merging in future updates.

听人劝,吃饱饭...

# vim /etc/profile.d/myPath

export PATH="/root/funcShell:$PATH" 意思就是把 /root/funcShell 加入环境变量

如果没写 export你会后悔很长时间的,嗯,足够长的时间...

这样配置完只能重启生效,想要立即生效怎么办... 执行如下指令

# source /etc/profile

# echo $PATH 发现 /root/funcShell 已经作为环境变量添加进来了

本来到这里就该结束了.... 但是 ... 想删除怎么办? # rm -f /etc/profile.d/myPath # source /etc/profile

很遗憾之前的操作是无效的.当然你 reboot 可以,但是我不想 reboot 就想恢复怎么办~ 也许有更高明的做法,但是我蠢蠢的写了一个脚本

# vim xxx.sh 原谅我单词量的匮乏...



再见...

好吧,还有点事要说一下, 以上内容就是 脚本的全部内容了,不需要在第一行加入 #!/bin/bash 因为我要用 source 调用.

我要用 source 调用因为脚本中有一句 source /etc/profile 而 source 又是 bulitin 命令,是无法用 bash 调用的

这是一个 不小的话题....总之,按照以下 命令调用脚本,可以把 PATH 恢复的 没有被 "祸害" 之前的样子

# source xxx.sh

再见....

2o_TwoTips的更多相关文章

随机推荐

  1. python raw String 获取字符串变量中的反斜杠

    常用的获取raw string的方式为: >>>r'\n' \n 不能用在字符串变量中,获取字符串变量中的反斜杠如下: tab = '\n' >>>tab.enco ...

  2. Linux-深入理解Socket异常

    在各种网络异常情况的背后,TCP是怎么处理的?又是怎样把处理结果反馈给上层应用的?本文就来讨论这个问题.分为两个场景来讨论 建立连接时的异常情况 1 正常情况下 经过三次握手,客户端连接成功,服务端有 ...

  3. java编译期优化

    java语言的编译期其实是一段不确定的操作过程,因为它可以分为三类编译过程: 1.前端编译:把.java文件转变为.class文件 2.后端编译:把字节码转变为机器码 3.静态提前编译:直接把*.ja ...

  4. Oracle常用的性能诊断语句

    --1.阻塞及等待事件信息查询 -- 查询所有会话的状态.等待类型及当前正在执行的SQL脚本 select se.SID, se.SERIAL#, se.Status, se.Event, se.BL ...

  5. ios获取UserAgent

    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero]; NSString *userAgent = [webView st ...

  6. 监控服务 - Nagios配置文件详解

    Nagios的配置文件: Nagios安装后有四种默认的配置文件:主配置文件.CGI配置文件.资源定义文件.对象定义文件.这些配置文件间具有一些关系,只有充分理解各配置文件,才能使得配置Nagios服 ...

  7. vbox丢失*MultiArch_amd64.msi或者*MultiArch_x86.msi重新制作

    1.去官网下载你缺少这个文件的那个版本的exe文件. 2.下载7-zip软件(就在百度下载,比较小). 3.用7-zip解压这个exe.会出现一个文件夹,大概名字为VirtualBox-4.3.12- ...

  8. shell script

    一.shell script的编写与执行 1.shell script 的编写中还需要用到下面的注意事项: a.命令的执行是从上到下,从左到右地分析与执行 b.命令.参数间的多个空白都会被忽略掉 c. ...

  9. Linux 忘记root密码 的解决办法

    以单用户维护模式登录 先将系统重启, 在读秒时按下任意键进入菜单界面,再仔细看菜单下的说明,按下e就能进入grub的编辑模式,如下 将光标移动到kernel那行, 再次按e进入kernel的编辑界面中 ...

  10. maven 手动安装本地jar包(转载)

    From:http://www.cnblogs.com/leiOOlei/p/3356834.html 安装命令: -Dpackaging=jar