当前位置: 首页 > news >正文

这些 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的情况下的启动文件夹,rcrc.sysinitinit.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/ 目录下存放的是每个用户包括rootcrontab任务,每个任务以创建者的名字命名

/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的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

* 取值范围内的所有数字

/ 每过多少个数字

- XZ

散列数字

以下是几个例子。

时间                  注释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程序。

如果您觉得本博文对您有帮助,您可以推荐或关注我,谢谢。

http://www.lryc.cn/news/62300.html

相关文章:

  • PAL制搜台
  • SpringBoot 使用 Docker Registry Api
  • Win10任务栏卡死怎么办?这3个方法快收藏!
  • 这一篇搞定Spring
  • 软测如果这么学,培训班都得倒闭,直接省去上万元的学费
  • 赎金信(Hash的应用)
  • 4月更新!EasyOps®全平台27项新功能一口气来袭~
  • 程序计算任意连续的12个月公里数不超三万公里预警
  • 【IMU】IMU知多少之42866
  • 谁说不能用中文写代码?
  • Java阶段二Day07
  • React Native iOS打包详细步骤
  • I/O复用函数,poll和epoll的用法与select、poll、epoll的区别
  • 大数据周会-本周学习内容总结011
  • 常见的NoSQL数据库介绍
  • 记录安装Nodejs和HBuilderX搭建、部署微信小程序开发环境(一)
  • (一)pyahocorasick和marisa_trie,字符串快速查找的python包,自然语言处理,命名实体识别可用的高效包...
  • 基于Java+SpringBoot+vue+element驾校管理系统设计和实现
  • Unity中值类型和引用类型及使用时的注意事项
  • PM510V16 3BSE008358R1嵌入式卡件用于励磁系统多用于工业发电
  • AI 这是要杀疯啦!
  • 【精品示例】超实用Python爬虫入门实例——做一个优质舔狗
  • TCP流量控制与拥塞控制
  • Java_异常
  • 自动化工具 接口自动化测试引擎
  • 十三、详解Kubernetes的存储管理器
  • java版 工程管理系统源码之提高工程项目管理软件的效率
  • VMware 安装 MS-DOS7.10 并配置网络
  • 嵌入式51单片机04-矩阵按键系列
  • 某安全对抗行走APP逆向分析