2o_TwoTips
∮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的更多相关文章
随机推荐
- ext.net与extjs的关系
一.在客户端,ext.net中可以使用extjs的语法. 如发送ajax请求, Ext.Ajax.request({ url: 'Common/getNode', ...
- Qt开发中的实用笔记三--关于各种类的零碎知识点:
1,QUuid()创建唯一标识码,在创建数据库实体ID和链接数据库QSqlDatabase时非常方便 2,QScrollArea与QScrollBar,如果是要在widget中添加窗口滑动QScrol ...
- 验证视图状态MAC失败。如果此应用程序由网络场或群集承载,请确保配置指定了相同的validationKey和验证算法(转)
原文转自:http://www.cnblogs.com/Setme/archive/2012/06/05/2537084.html 验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 ...
- 分析案例:应用服务无响应,任务管理器中发现大量w3wp僵尸进程----等待异构系统WebService返回值
问题描述: 某二次开发的项目反馈,不定期出现应用服务器无响应的情况,登录服务器发现任务管理器中有大量的w3wp僵尸进程. 分析过程: 针对同一进程每隔15秒抓取dump,连续抓取3个,对比 ...
- 用dos命令备份和恢复sql server 数据库
这里是批处理命令-----备份的 delete d:\restore\cw_ft.bak delete d:\restore\cw_sd.bak sqlcmd -i "bak.sql&quo ...
- 如何比较两个SQL数据库的字段差别。
程序好几个版本了,数据也弄出好好几版本,这下好了,原程序要升级,当然数据库也要升,可是里面已经有了大量的数据了,这时候怎么办.写了个存储过程来解决,一目了然. 因为2005及以上的数据库已经没有表sy ...
- Hypernetes简介
好久没有更新博客了,今天给大家介绍下最近在Hypernetes上做的工作,这个也是之前在微信群里的一个分享. Hypernetes是一个真正多租户的Kubernetes Distro. Hyperne ...
- .NET 开发快捷键大全
序号 快捷键 说明 1 Ctrl + Tab 切换当前编辑视图 2 Ctrl + Shift + Tab 反向切换当前编辑视图 3 F7 将窗体设计视图转成其代码视图 4 Shift + F7 将代码 ...
- zookeeper在集群负载均衡中的应用
zookeeper本身是不提供负载均衡的策略,需要自己来实现,所以这里确切的说,是在负载均衡中应用到了zookeeper做集群的协调. 对于HTTP请求的负载均衡,成熟的解决方案是Nginx(或Hap ...
- git学习:多人协作,标签管理
多人协作: 查看远程库的信息, git remote 推送分支到远程库 git push origin master/dev 注意:master是主分支,时刻需要与远程同步 dev是开发分支,也需要与 ...
