Maison  >  Article  >  Tutoriel système  >  Ces compétences « d'automatisation » Linux vous apprennent à effectuer des tâches facilement

Ces compétences « d'automatisation » Linux vous apprennent à effectuer des tâches facilement

PHPz
PHPzavant
2024-02-14 18:12:13511parcourir

Fausse originalité des tâches d'automatisation Linux

Lorsqu'un site Web est hébergé sur un système d'exploitation Linux, il est souvent nécessaire de maintenir le site Web, comme vérifier l'utilisation des ressources et répondre en conséquence, segmenter les journaux, trier les données et effectuer des tâches spécifiques dans des états spécifiques, etc. Afin de réaliser l'exécution automatisée de ces opérations, le système Linux offre un moyen pratique. Cet article présentera les méthodes courantes de mise en œuvre des tâches d'automatisation Linux.

这些 Linux 的“自动化”技巧,教你轻松完成任务

Les avantages de l'automatisation des tâches sont les suivants :

  1. Économisez de la main d’œuvre : écrivez simplement un script pour automatiser les tâches.
  2. Flexibilité temporelle : en s'exécutant automatiquement la nuit, vous pouvez éviter les périodes de pointe de trafic sur le site Web sans affecter l'efficacité du site Web pendant la journée.
  3. Précision : lorsqu'elles sont correctement configurées, les tâches automatisées seront sans erreur.
  4. Plus important encore, l’automatisation des tâches évite aux utilisateurs d’avoir à taper fréquemment certaines commandes.

Démarrage

Le démarrage devrait être un besoin très courant pour nous. Nous avons souvent besoin d'exécuter automatiquement certaines commandes pour démarrer des services, des processus, etc. lorsque nous allumons l'ordinateur, nous n'avons plus besoin de saisir le même groupe de commandes à chaque fois. le moment où nous allumons l’ordinateur.

Commande chkconfigUtilisez la commande chkconfig pour démarrer des services ou des programmes spécifiques à différents niveaux de démarrage.

Parlons d'abord du niveau d'exécution de Linux :

  • Le niveau 0 signifie : arrêter
  • Le niveau 1 signifie : mode mono-utilisateur
  • Le niveau 2 signifie : mode ligne de commande multi-utilisateurs sans fonction NFS
  • Le niveau 3 signifie : Il existe un mode ligne de commande multi-utilisateurs avec fonction NFS
  • Le niveau 4 signifie : Non disponible
  • Le niveau 5 signifie : Mode multi-utilisateurs avec interface graphique
  • Le niveau 6 signifie : Redémarrer
  • La commande

chkconfig est la suivante :

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服务删除

édition du fichier rc.d

Vous pouvez également modifier directement les fichiers dans le répertoire /etc/rc.d/ pour réaliser un démarrage automatique. Il existe de nombreux fichiers dans ce répertoire. rcn.d est le dossier de démarrage lorsque l'état de démarrage est n. rc, rc.sysinit et init.d sont tous des modules système ou des fichiers [dossiers] à démarrage automatique définis par le système.

Nous utilisons vim rc.local pour modifier le fichier rc.local afin de personnaliser notre propre plan de démarrage. Les commandes sont très simples, tout comme les opérations normales. Par exemple, /usr/local/apache/bin/apachectl start signifie démarrer automatiquement le serveur Apache après le démarrage.

à mettre en œuvre les tâches planifiées

at est un programme de tâches planifiées simple avec des fonctions simples. Il ne peut effectuer que des tâches planifiées ponctuelles. Son utilisation est la suivante :

#at time      //at加时间启动at命令
at>operation    //输入要执行的操作
at>Ctrl+D      //按Ctrl+D退出命令编辑

La forme courante du temps est la suivante

at H:m tomorrow     //第二天的H点m分
at now + n minutes/hours/days/weeks  //在n分/时/天/周后
at midnight         //在午夜=-=
at H:m pm/am        //在当天上午/下午的H点m分

Nous pouvons également afficher la commande actuelle de at dans le fichier /var/spool/at. Il convient également de noter que le processus atd est fermé par défaut sous Linux et doit être ouvert manuellement.

crontab implémente les tâches planifiées

Le processus cron intégré de Linux peut nous aider à répondre à ces besoins. Avec les scripts cron et shell, les instructions très complexes ne posent aucun problème.

introduction cron

Le démon cron est un petit sous-système composé d'utilitaires et de fichiers de configuration. Certains styles de cron peuvent être trouvés sur presque tous les systèmes de type UNIX. Nous pouvons utiliser ps aux|grep cron pour trouver le démon 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程序。

如果您觉得本博文对您有帮助,您可以推荐或关注我,如果您有什么问题,可以在下方留言讨论,谢谢。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer