这些 Linux 的“自动化”技巧,教你轻松完成任务
linux 系统的 web 网站在运营状态时,我们常需要对网站进行维护,例如查看资源剩余并做出响应、日志分割、数据整理,在特定状态执行特定任务等等,这些都会需要 linux能实现自动执行某些任任务。本篇博文介绍如何进行常见的linux自动化任务。
实现“自动化”有如下好处:
节省人力,一个脚本就够了。
在夜晚自动执行可以避开网站流量高峰期,不影响网站白天的效率。
准确,设置完善的情况下,不会出差错。
当然最重要的还是省心了,不用频繁的敲某些命令了。
开机启动
开机启动应该是我们很经常的需求了,我们常需要在开机时就自动执行某些命令来开启服务,进程等,有了它我们不必再在每次开机时输入同一堆命令。
chkconfig命令使用chkconfig命令可以在设置在不同启动级别下启动特定的服务或是程序。
先说一下linux的运行级别:
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:不带NFS功能的多用户命令行模式
等级3表示:有带NFS功能的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
chkconfig的命令如下:
chkconfig --list //命令查看已设置的开启自启动列表。
xxxd 0:off 1:off 2:on ... 6:off //list的结果,表示在xxxd服务在启动级别为2 3 4 5 的情况下会自动启动。
chkconfig --add xxxd//向任务列表中添加一个xxxd服务
chkconfig [--level 1/2/../6] xxxd on/off//设置xxxd用服务在n状态为开/关,[]内省略则在2345级别开启
chkconfig --del xxxd //将任务列表中的xxxd服务删除
rc.d文件的编辑
也可以直接编辑/etc/rc.d/目录下的文件来实现开机自启动。此目录下有很多文件,rcn.d是在启动状态为n的情况下的启动文件夹,rc、rc.sysinit、init.d都是系统的模块或系统设置的自启文件[夹]。
我们用vim rc.local 编辑 rc.local文件,来定制自己的自启计划。命令十分简单,就像平常在操作一样。如/usr/local/apache/bin/apachectl start表示开机自启动apache服务器。
at实现定时任务
at是一个简单的功能简单的定时任务程序,它只能进行一次性的定时任务,其用法如下:
#at time //at加时间启动at命令
at>operation //输入要执行的操作
at>Ctrl+D //按Ctrl+D退出命令编辑
其time的常见形式如下
at H:m tomorrow //第二天的H点m分
at now + n minutes/hours/days/weeks //在n分/时/天/周后
at midnight //在午夜=-=
at H:m pm/am //在当天上午/下午的H点m分
我们也可以在/var/spool/at文件中查看at的当前命令。还需要注意的是,linux默认atd进程关闭状态,需要手动打开。
crontab实现定时任务
linux内置的cron进程能帮我们实现这些需求,cron搭配shell脚本,非常复杂的指令也没有问题。
cron介绍
cron守护进程是一个由实用程序和配置文件组成的小型子系统,在几乎所有类 UNIX 系统上都可以找到某种风格的cron,我们可以用ps aux|grep cron找到crond这个守护进程。
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
/var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
/etc/crontab 这个文件负责调度各种管理和维护任务。/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
我们还可以把脚本放在/etc/con.hourly、/etc/con.daily、/etc/con.weekly、/etc/con.monthly目录中,让它每小时/天/星期、月执行一次。
crontab的使用
我们常用的命令如下:
crontab [-u username] //省略用户表表示操作当前用户的crontab-e (编辑工作表)-l (列出工作表里的命令)-r (删除工作作)
我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。
crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
*
取值范围内的所有数字/
每过多少个数字-
从X到Z,
散列数字
以下是几个例子。
时间 注释
0 0 25 12 * //在12月25日的0时0分
*/5 * * * * //每过5分钟
* 4-6 * * * //每天的4 5 6点
* * * * 2,5 //每周二和周五
配合简单的shell脚本
如果我们的命令有逻辑判断等非常复杂的操作时,再直接编辑crontab就有点困难了,这时,我们可以使用shell脚本。其来历,分类定义与题不符,不再多说,我们直接说它的用法。
我们用vim /usr/sh/test.sh来使用vim编辑一个shell脚本
#!/bin/sh //声明开始shell脚本
a = "hello world" //定义一个shell变量
echo $a //熟悉的echo,输出a变量
然后crontab -e编辑crontab,添加 */5 * * * * /usr/sh/test.sh
每隔五分钟运行一次test.sh脚本,也可以用 /phppath/php /filepath/test.php
来用php进程来执行php程序。
这些 Linux 的“自动化”技巧,教你轻松完成任务相关推荐
- 这些 Linux 的 “自动化” 技巧,教你轻松完成任务
实现"自动化"有如下好处: 节省人力,一个脚本就够了. 在夜晚自动执行可以避开网站流量高峰期,不影响网站白天的效率. 准确,设置完善的情况下,不会出差错. 当然最重要的还是省心了, ...
- 两个技巧教你轻松将扫描件的PDF转换成可编辑word
在日常的学习工作中, 我们时常接触到由纸质扫描而成的PDF文档,这种文档就像是石头一样,复制不了,也编辑不了. 这是因为扫描而成的PDF文档,就像是把图片保存成PDF格式,所以无法自由的复制编辑. 如 ...
- 3 个技巧教你轻松查看多开模拟器的端口号~
此文章来源于项目官方公众号:"AirtestProject" 版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 前言 我们都知道,连接模拟器设备的字符串里,需要填 ...
- 两大技巧教你轻松应对IB数学
同学想要在IB数学科取得好成绩,可以从两个方面来着手. 1.复习技巧 第一个是复习技巧.这方面,同学要清楚知道自己读的课程,它的教学大纲(Syllabus)要求是什么,还有它背后想要同学达到什么样的目 ...
- 面试官硬核提问,教你轻松应对(面试小技巧)1
每个人都会经历大大小小的很多面试,这里分享一些面试小技巧教你轻松面对,顺利入职.好了,长话短说直接上重点. Q1请自我介绍一下 不要只是简单地读简历,企业主要是想通过这个问题了解你看你是否能胜任这份工 ...
- linux系统灾难恢复,轻松解决 Linux操作系统故障恢复技巧
轻松解决 Linux操作系统故障恢复技巧 更新时间:2006年10月24日 00:00:00 作者: 不论你在运行什么操作系统,在很多情况下,你会面对灾难恢复操作.你的主引导区被覆盖,你的硬盘不能 ...
- 20个超高效的Linux命令与技巧
简介:这里有一些很有用的 Linux 命令,终端技巧和快捷方式,可以在使用Linux命令行时节省大量时间. 在本文中,我将向您演示一些专业的Linux命令技巧,这些技巧将使您节省大量时间,在某些情况下 ...
- 如何解决html文档无法复制,职场必备技能:网页文档无法复制,3招教你轻松搞定...
原标题:职场必备技能:网页文档无法复制,3招教你轻松搞定 其实很多人在浏览网页时都会遇到这个问题,看到了自己喜欢的文章片段,某一段文字特别符合自己的工作汇报,想要复制下来,结果却发现弹出了窗口,不是让 ...
- Linux命令使用技巧集锦(转)
Linux命令使用技巧集锦(转) 初用Linux时可能有处处不方便的感觉, 可是等使用一段时间掌握了一些技巧后就会感到越来越顺手了. 以下就是我使用Linux以来积累的一些经验与技巧, 相信对初学者会 ...
最新文章
- logstsh xpack 认证_ElasticSearch Kibana 和Logstash 安装x-pack记录
- ECMAScript 6 Features 中文版
- 教你搭建基于typescript的vue项目
- 【学习笔记】SAP CO模块概念信息(下)
- volatile和final
- Function接口练习之按照指定要求操作数据
- Android之系统架构
- jaxb_JAXB众所周知的秘密
- 940B. Our Tanya is Crying Out Loud
- RSA公钥体系 与在 ssh中免密的登陆的应用
- Element-UI + Vue.js + SpringBoot 实现前后端分离入门项目
- 【大数据编程笔记】大数据背景,案例,概念
- matlab2c使用c++实现matlab函数系列教程-intersect函数
- 光敏传感器实验-传感器原理及应用实验
- JDBC快速入门完全傻瓜式连接数据库
- 文本标注开源系统Doccano、Label Studio、BRAT比较
- Android高级面试题精选
- 马萨诸塞大学阿姆赫斯特分校计算机科学专业,UMass Amherst的CS「马萨诸塞大学安姆斯特分校计算机科学学系」...
- 面向对象三大特性及关键字
- MongoDB填坑Can't find a codec for class org.springframework.data.mongodb.core.query.GeoCommand
热门文章
- (17)10-10-12分页
- JAVASE_File类(实践)——目录拷贝
- window下pip 用不了的一种解决办法
- C++类中封装线程函数
- ACM入门之【快速幂】
- 1045 Favorite Color Stripe (30 分)【难度: 中 / 知识点: DP】
- CSS控制鼠标的箭头
- android服务的说法错误的是,下面关于Android开发描述有误的一项是()。
- 解决方案和项目的关系_建筑企业数字化转型解决方案|建企大数据篇
- python作者龟叔_Python基础 — Python简介