- Linux 提供了一个完整的自动化任务生态系统:Bash 脚本、cron、anacron、at 和 systemd 定时器涵盖了从一次性执行到复杂和重复性作业的一切。
- 正确使用 crontab、环境变量、日志和 flock 等锁定机制是实现可靠且易于维护的自动化的关键。
- 通过自动化控制来增强安全性和性能:SSH 加固、防火墙、SELinux、软件包和服务清理以及优化配置文件(如 tuned)。
- Ansible 等编排工具允许您将这种自动化扩展到数十台或数百台服务器,从而确保配置的一致性和可重复性。
如果你每天都使用Linux,迟早你会意识到…… 重复同样的任务会浪费大量时间。手动备份、清理临时文件、更新软件包、系统状态检查……所有这些都可以委托给系统自动执行,这样你就可以去做更有趣的事情(或者安心睡觉)。
Linux 生态系统几十年来一直为此而设计: 以可靠、灵活、安全的方式自动化任务从经典的 cron 和 at 命令,到 anacron,再到 systemd 定时器以及 Ansible 等更强大的工具,您拥有丰富的工具库,可以应对从最简单的脚本到数百台服务器编排的各种需求。在本指南中,我们将把所有这些工具整合在一起,并通过详细的解释和清晰的示例,让它们变得实用。
Linux 中的自动化意味着什么?为什么你应该关注它?
当我们谈到Linux中的自动化时,我们指的是 无需人工干预即可安排命令、脚本或服务的执行无论是单次使用还是定期使用,都适用。这既适用于您的个人笔记本电脑,也适用于生产服务器集群。
自动化具有几个明显的优势:它通过消除重复性任务来减少人为错误,节省时间,并确保…… 关键任务始终以同样的精度执行。 并支持标准化的系统管理。Linux 在这方面尤其出色,因为它从一开始就被设计成与脚本和控制台工具高度兼容的平台。
确实有人担心过度自动化会导致对技术的依赖,或者手工知识会失传,但是 如果使用得当,它可以腾出时间从事更有价值的工作。架构设计、安全分析、流程改进或直接开发。
在日常操作中,Linux 的自动化通常基于以下几个支柱: Bash 脚本、cron/anacron、at、systemd 定时器以及 Ansible 等配置管理工具它们各自满足不同类型的需求,我们将在下文中详细介绍。
Cron:周期性自动化的经典之作
如果说每个 Linux 管理员都应该熟记于心的一个工具,那就是 cron。 Cron 是一个在后台运行的守护进程,它会在特定时间启动命令或脚本。每分钟、每小时、每天、每周、每月,或更复杂的组合。
它的名字来自 chronos,希腊语中的时间Vixie Cron 自 20 世纪 70 年代末就已存在于 Unix 系统中。大多数现代发行版(例如 Debian、Ubuntu、Fedora 等)都使用 Vixie Cron 的某种变体,这些变体经过充分测试且稳定可靠。对于生产环境而言,它是一个基础组件,几乎与内核本身一样重要。
使用 cron 可以让你自动执行诸如此类的事情 夜间备份、日志轮换、监控任务、维护脚本或报告生成其理念很简单:你只需定义要运行的内容和时间,cron 就会处理其余的事情,无需图形窗口或故事。
此外,几乎所有类Unix系统都支持cron,因此 你通过 cron 学到的知识对很多不同的环境都很有用。从廉价的VPS到企业级服务器。
Linux cron 架构:守护进程、crontab 和特殊目录
要有效使用 Cron,了解其内部结构很有帮助。概括来说, 该系统以 crond 守护进程、crontab 文件和几个特殊目录为核心构建。 由系统管理。
cron守护进程会随系统一起启动(通常通过systemd或相应的init进程), 他时刻保持清醒,每分钟都查看是否有任务需要触发。当检测到某行与当前分钟数匹配时,它会在一个新的 shell 进程中启动相关的命令。
系统中的每个用户都可以拥有自己的调度文件,称为 crontab。 用户 crontab 文件通常存储在 /var/spool/cron/ 或 /var/spool/cron/crontabs/ 等路径中。具体取决于发行版。重要的是不要手动编辑,而应该通过命令进行编辑。 crontab中它会验证语法并通知守护进程有更改。
除了用户定时任务之外,还有 为系统设计的定时任务机制/etc/crontab 文件、/etc/cron.d/ 目录以及诸如 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 之类的定期运行目录。后几个目录包含系统使用 anacron 或 run-parts 等工具定期运行的脚本。
一般的想法是 cron 守护进程会读取这些文件和目录。它每分钟都会检查是否有需要执行的任务。这种模块化架构使得系统软件包能够轻松安装自己的任务,而不会影响全局配置。
crontab 语法:五个字段及其运算符
刚开始使用 cron 时,最需要记住的事情之一就是它的命令语法。 每个用户 crontab 条目包含五个时间戳字段以及要执行的命令。虽然我们没有完全复制表格,但经典字段包括分钟、小时、月份中的日期、月份和星期几。
每个字段都接受数值、范围、逗号分隔的列表、用斜杠分隔的步长,甚至还可以使用典型的星号来表示“所有可能的值”。 借助这些运算符,您可以表达复杂的模式 无需编写二十行不同的代码。
此外,许多 cron 实现都接受 特殊快捷方式,例如 @daily、@hourly、@weekly、@monthly、@reboot 类似地。这些别名简化了常见任务,因此您甚至无需记住字段顺序。
当您使用 /etc/crontab 文件或 /etc/cron.d/ 目录时, 添加第六个字段,用于指定运行该任务的用户。这对于需要以 root 用户或其他服务帐户身份运行的系统任务至关重要。
记住这种语法,并通过一些实际例子进行练习,就能区分笨拙的 cron 使用和成功的 cron 使用。 随着时间的推移,自动化过程将变得清晰、易读且易于维护。.
专业 crontab 管理:编辑、列表和版本控制
命令 crontab中 这是用于管理用户计划任务的官方界面。通过它,您可以创建、编辑、列出甚至删除您的 crontab,而最重要的是: 这样可以避免直接接触系统的内部文件。这样可以减少错误和权限问题。
在严肃的环境中,强烈建议采取以下做法: 使用 Git 将 crontab 内容维护在版本化的文本文件中这样,您可以查看谁在何时更改了什么,比较旧版本,并在修改后出现问题时快速恢复以前的配置。
也可以从外部文件安装 crontab,这与……非常契合。 自动化部署流程或基础设施即代码这样一来,就不用在每台服务器上手动编辑,而是将同一个文件发送给所有人,并统一应用更改。
在实践中,经验丰富的管理员通常会在每个条目前添加注释,并将相关任务分组, 保持脚本命名和路径规范的清晰性 这些都用在了 cron 任务中。这种规范的做法能让几个月后的工作轻松许多。
使用 cron 执行自动化任务的常见示例
要了解 cron 的潜力,只需回顾一下典型的使用案例。其中最常见的案例之一是: 例行系统维护轮换和压缩日志、清理临时文件、重新生成搜索索引或删除旧备份。
另一个非常常见的障碍是 监控任务运行脚本来检查磁盘使用情况、系统负载、某些服务的运行状况或内存消耗情况是很常见的,如果检测到危险阈值,它们会生成日志、发送电子邮件或向外部系统发出警报。
在开发和数据库领域,cron 也具有很大的潜力。例如,定时任务可用于: 执行数据库备份,运行脚本以重新生成指标或将报告导出到 CSV 文件甚至可以用来协调小型数据处理流程。
所有这些几乎都由 Bash 脚本或其他语言来完成实际工作,而 cron 则负责“何时”执行。这种职责分离使得 crontab 文件保持简洁,并将业务逻辑封装在单独的文件中。
cron 中的环境变量:错误的经典来源
刚开始使用 cron 时,最常见的错误之一是假设任务会自动执行。 与在交互式终端工作时相同的环境事实并非如此:cron 运行命令的上下文非常有限,其 PATH 环境变量也有限,并且无法使用 shell 的自定义设置。
这意味着许多手动运行时运行完美的脚本在 cron 定时任务下会失败,原因如下: 它们找不到二进制文件,找不到相对路径,或者依赖于不存在的环境变量。解决方法很简单:在 crontab 本身或脚本中明确定义 PATH 和任何其他必要的变量。
使用变量来控制电子邮件的行为也是一种常见的做法。 邮件这样,任务的标准输出要么发送到用户的邮箱,要么被丢弃。在未配置邮件系统的环境中,建议将输出重定向到 /dev/null 中的文件,以防止静默累积。
总之,在设计定时任务时,必须将它们视为在一种“极简环境中”运行。 脚本所需的所有内容都必须明确声明。.
/etc/crontab 和 /etc/cron.dy 是周期性目录
除了单独的 crontab 之外,Linux 还提供了一种 系统 crontab 通常位于 /etc/crontab 目录中该文件与用户文件不同之处在于,它包含一个额外的字段,用于指示将使用哪个帐户启动命令,这对于全局任务至关重要。
该文件通常定义了(除其他内容外) 执行 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 中的脚本在许多系统中,这些执行任务委托给 anacron 等工具,以确保即使计算机没有在特定时间开机,任务也能执行。
目录 /etc/cron.d/ 它托管额外的 crontab 文件,这些文件通常由系统软件包或外部工具安装。每个文件都遵循与 /etc/crontab 相同的格式,包括用户字段。这是推荐的方法。 在不修改主 crontab 的情况下添加系统任务。这样可以提高维护效率,并防止更新过程中发生冲突。
典型的工作流程是 cron 守护进程定期检查这些文件,并结合 anacron 或 run-parts, 它会在相应的时间触发周期目录中包含的脚本。作为管理员,您只需将准备好的脚本放在正确的位置即可。
Anacron:当设备并非始终开启时
cron 的一个已知限制是,如果在运行任务时计算机关机,则该任务的执行将会丢失。 Anacron 的创立正是为了填补这一空白。尤其是在笔记本电脑或办公台式电脑等并非 24 小时开机的机器上。
Anacron 的运行并不以确切的日期和时间为准,而是以自上次执行任务以来经过的天数为准。 系统启动时,会检查哪些每日、每周或每月任务被跳过。 并重新编程,使其以可配置的较小延迟运行。
以分钟为单位的延迟字段很重要,因为 它能防止所有待处理的任务在启动时同时启动。这可能会使系统过载。因此,他们采取了错峰启动的方式,让团队能够更循序渐进地开展工作。
在许多现代系统中,如果存在 anacron,它负责 /etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 中的脚本,而 cron 则处理更精细、更频繁的任务。这种组合使得…… 即使在经常停机的机器上,自动化系统也应该稳定可靠。.
at 命令:将来一次性执行
虽然 cron 和 anacron 专注于重复性任务,但该命令 涵盖了一个非常简单且实用的案例:安排命令仅运行一次 在未来的某个特定时间。这就像在系统上贴张纸条,让它“明天9:30”或“2小时后”执行某项操作一样。
`at` 的语法非常人性化,支持自然的时间表达式。定义好任务后, 系统将其存储在队列中,并在适当的时候执行。之后,该任务就会消失,这与 cron 不同,cron 会一直保留任务,直到你修改或删除它。
这个工具对于以下情况尤其方便: 一些你不想忘记但又不适合作为重复性任务的特定任务:计划重启、工作窗口后的维护运行,或必须在特定时间启动的测试。
结合优秀的脚本,`at` 就成了一个优雅的通配符,很多用户都忘记了它的存在,但它却非常实用。 当创建新的 cron 条目不值得时,它可以大大简化您的日常生活。.
systemd 定时器:cron 的现代替代方案
在现代使用 systemd 的发行版(Ubuntu、Debian、Fedora、CentOS 等)中,还有另一种调度任务的方法: systemd 定时器这里不依赖于 crontab,而是定义服务单元 (.service) 和定时器单元 (.timer),systemd 会像管理其他服务一样管理它们。
Systemd 定时器之所以突出,是因为 它们与 systemd 生态系统的其他部分完美集成。您可以使用熟悉的工具(例如 journalctl、systemctl 等)查看状态、日志和依赖项。这对于需要在其他服务之后启动、强制执行重启策略或维护详细日志的复杂作业来说非常理想。
典型的定时器由一个服务文件和一个定时器文件组成。服务文件定义了要执行的内容(脚本、二进制文件、特定操作),定时器文件则指定了何时以及多久启动一次。 Systemd 提供灵活的日历表达式和持久化等选项。确保在停工后,如果之前“跳过”了某项工作,则该工作能够得到执行。
在选择 cron 和 systemd 定时器时,一个好的经验法则是问问自己是否需要 集成日志、服务依赖关系或高级持久化如果答案是肯定的,那么定时器通常是更好的选择。对于简单、通用的任务,cron 仍然是一个久经考验且完全有效的选择。
归根结底,这两种方法之间并不存在冲突: 您可以使用 cron 来处理简单的任务,使用定时器来处理复杂的任务。在同一系统中可以毫无问题地共存。
cron 中的安全性和访问控制
由于 cron 可以利用适当的用户权限执行几乎任何命令,因此安全性至关重要。Linux 系统集成了…… 基于 /etc/cron.allow 和 /etc/cron.deny 文件的控制机制这决定了哪些用户可以使用 cron。
根据配置,系统可以只允许白名单上的用户使用 cron,或者明确拒绝黑名单上的用户使用 cron。 在多用户环境或暴露的服务器上,妥善管理这些文件至关重要。任何账户都不应该因为设计不佳的任务而占用过多资源。
此外,建议限制以 root 用户身份运行的脚本,并仔细审查任何具有高权限的计划任务的代码。 管理员权限下的 cron 脚本中的一个简单疏忽就可能造成安全漏洞。 非常严重。
在更高级的环境中,像 SELinux 或 AppArmor 这样的工具可以对 cron 启动的进程执行的操作进行额外的控制,从而进一步加强系统的安全态势。
调试定时任务:方法和典型错误
当计划任务没有达到预期效果时,最好的策略不是“漫无目的地来回折腾”,而是继续前进。 一种小型诊断方法第一步是使用发行版的服务工具验证 cron 守护进程是否确实处于活动状态并已启用。
之后,你必须 查看系统日志和特定 cron 日志 是的,它们确实存在。你经常会发现 crontab 文件中的语法错误、权限问题或脚本执行失败,这些问题起初并不明显。
下一步合乎逻辑的做法是手动执行 cron 尝试启动的脚本或命令,但是 尽可能地模拟 cron 环境:相同的用户,相同的路由,无需依赖交互式 shell 的别名或函数。
最常见的错误包括:忘记重定向标准输出和错误输出、使用 cron 运行脚本时没有意义的相对路径、假设 PATH 包含实际上不存在的目录,或者没有考虑到同一任务的多个实例可能会在时间上重叠。
纠正这些问题需要 明确定义所有内容,使用绝对路径,添加调试日志,并防止任务并发执行。 如果存在这种可能性的话。
使用 cron 的良好专业实践
多年来,系统管理员群体总结出了一系列建议,这些建议决定了系统运行的成败,避免了“随意设置四个定时任务”和“精心设置定时任务”之间的差异。 专业地管理自动化.
黄金法则 始终将每个任务的输出重定向到日志文件 /dev/null如果不这样做,cron 会尝试通过电子邮件将该输出发送给用户,这可能会填满 root 用户的邮箱,或者如果邮件系统未配置,邮件可能会丢失,从而使诊断变得极其困难。
另一项关键做法是 将逻辑打包成单独的脚本,而不是直接在 crontab 中编写冗长的命令。这样一来,你就可以对脚本进行版本控制、手动测试、编写文档,并更轻松地重复使用它。
为了避免问题重叠,可以使用诸如此类的工具。 羊群 它们允许实现简单的阻塞机制:如果一个任务实例仍在运行,则下一个实例要么等待,要么直接终止而不执行。这对于繁重的备份或数据处理任务至关重要。
最后,最好给 crontab 的每一行都加上清晰的注释,并保留该文件。 使用 Git 或类似系统进行版本控制随着时间的推移(或管理员变更),这些评论和更改历史记录将成为无价之宝。
Bash脚本:自动化流程的引擎
如果没有一些有用的程序要运行,以上所有方法都将失效,而这正是 Bash 脚本的用武之地。脚本本质上就是…… 一个包含 shell 依次执行的命令的文本文件就像你自己打字一样,但不会感到疲倦。
从历史上看,自 20 世纪 70 年代以来,shell 脚本一直是 Unix 自动化的核心。随着 Bash 成为许多发行版中的默认 shell, 一种简单但功能强大的脚本语言被整合起来。非常适合将系统组件连接起来、处理文件和协调外部程序。
实际上,一个典型的 Bash 脚本以以下这行文字开头: #!/斌/庆典 指示应该解释它的 shell,定义变量,执行命令,使用条件和循环,并使用 echo 添加信息性消息,以便我们知道发生了什么。
有些脚本非常简单,只能移动几个文件;而有些脚本则复杂得多,可以执行完整备份、生成报告等等。 它们与 cron 或 at 结合使用,可以自动运行。 每隔一段时间。
关键在于,任何在终端中重复执行过于频繁的任务都是一个理想的脚本,从中长期来看,它可以节省你的时间并避免愚蠢的错误。
实际示例:使用 Bash 和 cron 进行每日备份
一个非常常见的情况是缺乏 每天备份某个重要文件夹使用 Bash 脚本只需几行代码即可解决这个问题,它会创建一个以当前日期命名的目录,并将相关数据包含在其中。
一般逻辑大致如下:生成一个包含今天日期的字符串,构建一个包含该日期的目标路径,如果该目录不存在则创建该目录,递归复制您的重要数据,最后显示一条消息,表明备份已成功完成。
如果再结合备份加密,使用 Linux 系统上的 tar/gz 压缩 或者通过 VPN 或 SSH 隧道安全地传输到另一台服务器, 你可以轻松建立一个不错的备份策略。完全依赖于经典的Linux工具。
您可以将此脚本保存在类似 /usr/local/sbin 的目录或脚本文件夹中,并赋予其执行权限。然后,使用 cron 定时任务运行该程序。 在服务器负载较低时自动执行例如,每晚午夜。
如果再结合备份加密或通过 VPN 或 SSH 隧道安全传输到另一台服务器, 你可以轻松建立一个不错的备份策略。完全依赖于经典的Linux工具。
使用 Bash 脚本进行基本自动化:第一步
如果你刚开始学习脚本编写,最明智的做法是循序渐进。 首先,创建一个空文件,用你喜欢的编辑器编辑它,并添加几行命令。保存它,赋予它执行权限,然后进行测试。
最初的练习通常包括: 自动执行简单的任务,例如列出文件、将文件移动到指定文件夹或清理临时目录。这将使您熟悉语法、变量、权限和输出消息。
之后,您可以考虑编写脚本,定期在日志中记录日期和时间,在夜间创建 /etc/ 的压缩副本,或者检查磁盘空间并在使用率超过一定百分比时发出警报。
养成使用……是一种非常健康的习惯。 echo 用作调试工具这样,脚本就能输出正在执行的步骤、关键变量的值以及是否遇到任何问题。这大大简化了逻辑错误的查找。
通过练习,你最终会建立一个小型“个人脚本库”,这些脚本会成为你的默默助手,借助 cron、at 或 systemd 定时器随时准备自行运行。
自动化和安全:加强 Linux 服务器
几乎每次讨论重要服务器的自动化时,话题都会不可避免地转向安全性。 加强 Linux 服务器的安全性包括减少其攻击面、应用最佳实践以及自动化安全控制。 这样他们就不必“手动”记忆了。
第一个关键模块是 用户帐户管理建议避免使用通用或显而易见的用户名(例如“admin”或“oracle”),使用不太容易预测的名称,建立健全的密码策略并定期设置过期时间,并调整 UID 范围,使其不易被猜到。
另一个需要考虑的方面是已安装的软件包。不必要的软件越多,攻击面就越大。因此,注意这一点非常重要。 列出已安装的软件包,删除未使用的软件包,并监控依赖关系。 避免无意中中断关键服务。
您还需要使用 systemctl 等工具检查正在运行的服务,停止并禁用那些没有贡献的服务。 使用 netstat 或 ss 等工具检查监听端口 确保只有绝对必要的场所才能开放。
如果我们增加良好的 SSH 安全加固措施(禁用直接 root 登录、使用密钥认证、调整超时时间)以及使用 firewalld 或 iptables 等防火墙, 我们获得了多层保护,可以抵御外部攻击 无需过于复杂。
SELinux、防火墙和优化(已调优)
对于将安全性放在首位的场景,可以使用以下工具: 使用 SELinux 进行加固 它们起到额外的强制性访问控制屏障的作用,在传统权限之外限制了哪些进程可以执行哪些操作。
检查 SELinux 的状态非常重要,最好将其配置为严格应用模式。 根据系统需要调整政策 它配备了一些专用工具。虽然乍一看可能有点吓人,但配置正确后,它可以阻止许多不必要的操作。
在网络环境中,firewalld 或 iptables 它们允许您定义有关传入和传出流量的详细规则。通过仅开放特定服务(例如 SSH、HTTP 或任何实际需要的服务),可以大大减少潜在的攻击途径。
另一方面,也有一些工具,例如: 经过调校,专为……而设计 优化系统性能 使用基于工作负载类型(服务器、桌面、虚拟机等)的预定义配置文件。激活相应的配置文件并让 tuned 管理某些参数可以节省时间并提高整体性能。
如果只做一次就被遗忘,那这一切都毫无意义。 安全性和性能需要持续审查、定期打补丁和不断监控。而这正是自动化发挥作用的地方:许多此类例行任务都可以编程使其自动运行。
Ansible:大规模自动化和配置管理
当服务器数量从一两台增加到几十台甚至几百台时,定时任务和本地脚本就无法保持一致性了。 Ansible 作为一款自动化和配置管理工具应运而生。 它不需要在节点上安装代理,而是依赖于 SSH 和可读的 YAML 文件。
使用 Ansible,您可以定义主机清单、生成用于无密码身份验证的 SSH 密钥对,并实现自动化。 Linux系统管理 写作 描述服务器期望状态的剧本:应该安装哪些软件包,应该激活哪些服务,应该存在哪些配置文件等等。
最大的优势在于,你可以同时将同一套操作手册应用于多个系统。 获得一致且可重复的结果如果每个管理员都手动应用更改,这将很难实现。此外,Ansible 具有幂等性:多次运行同一个 playbook 不会破坏任何东西;它只是确保一切都按预期运行。
例如,一个简单的 playbook 只需几行代码即可在“web”组中的所有服务器上安装 tmux。在此基础上,可以构建更复杂的自动化流程:应用程序部署、批量配置更改、密钥轮换等等。
在安全领域,Ansible 是理想的选择。 应用加固策略、配置防火墙、调整 SSH 或部署审计脚本 以集中方式在所有节点上进行操作,避免疏忽和偏差。
日常自动化:案例与工作理念
除了具体的工具之外,还有一种随着时间推移而形成的思维模式: 每当你手动重复某件事几次时,就值得问问自己,这件事是否可以自动化。Linux 就是为此而生的。
有些人甚至把终端视为一个默默无闻的助手,它在后台为你做很多事情:安排电子邮件提醒、生成每周摘要、将目录与远程服务器同步等等。 无需任何操作,即可清理下载文件夹和临时文件夹。.
即使是像 at 这样经常被遗忘的工具,也能允许 明天在特定时间安排一次性执行任务,无需使用定时任务,避免给您的生活带来复杂性。结合结构良好的脚本,这些实用程序可以将你的 Linux 系统变成一种数字“洗碗机”,负责处理重复性任务。
重要的是要以积极的态度对待自动化。 判断力和常识自动化并非因为流行就去自动化,而是要评估哪些任务耗时、容易出错或如果被遗忘会造成影响,并优先处理这些任务。
随着时间的推移,你最终会为自己编写一些小练习:记录日期和时间的 cron 作业,以检查你是否正确配置了语法;备份脚本;监控脚本;甚至将其中一些任务转换为具有持久性和随机延迟的 systemd 定时器,以分散负载。
通过将所有这些组件组合在一起——Bash 脚本、cron、anacron、at、systemd 定时器、Ansible、安全最佳实践、防火墙和优化工具——最终构建出一个环境,在该环境中, Linux 全天候为您服务,维护备份、加强安全、保障性能。而你则可以专注于那些不那么机械化、更有趣的问题。
目录
- Linux 中的自动化意味着什么?为什么你应该关注它?
- Cron:周期性自动化的经典之作
- Linux cron 架构:守护进程、crontab 和特殊目录
- crontab 语法:五个字段及其运算符
- 专业 crontab 管理:编辑、列表和版本控制
- 使用 cron 执行自动化任务的常见示例
- cron 中的环境变量:错误的经典来源
- /etc/crontab 和 /etc/cron.dy 是周期性目录
- Anacron:当设备并非始终开启时
- at 命令:将来一次性执行
- systemd 定时器:cron 的现代替代方案
- cron 中的安全性和访问控制
- 调试定时任务:方法和典型错误
- 使用 cron 的良好专业实践
- Bash脚本:自动化流程的引擎
- 实际示例:使用 Bash 和 cron 进行每日备份
- 使用 Bash 脚本进行基本自动化:第一步
- 自动化和安全:加强 Linux 服务器
- SELinux、防火墙和优化(已调优)
- Ansible:大规模自动化和配置管理
- 日常自动化:案例与工作理念

