10.8运维笔记Linux

10.8

定时任务

crontab 命令

  • 编辑定时任务crontab -e
  • 查询 crontab 任务crontab -l
  • 删除当前用户的所有 crontab 任务crontab -r

用户的定时任务

每个用户都拥有属于自己的一套定时任务。

crontab 时间格式

 

Copy Code

* * * * * 命令

  1. 每个小时的第几分钟: 0-59(* 每分钟都执行)
  2. 每天的第几个小时: 0-23(* 每小时都执行)
  3. 一个月中的第几天: 1-31(* 每天执行)
  4. 每年的第几个月: 1-12
  5. 每周的星期几: 1-7

示例

每分钟执行一个命令,每分钟将 hello 写入 ~/logs.txt:

 

bashCopy Code

* * * * * echo hello >> ~/logs.txt

如果执行的定时任务是一个比较复杂的需求,可以把命令写到脚本文件 .sh 中,在 crontab 中直接执行脚本。

其他定时任务示例

  • 定期归档文件(压缩)
  • 定期重启服务器
  • 定期备份数据
  • 定期监控

Shell

批处理

批量执行命令,定期定时地去执行某些任务。

自动化运维

可以将维护命令集中编写在一个脚本文件中,配合定时任务自动运行维护服务器。Linux 中自带环境。

编写入门程序

.sh 文件中写多个 Linux 命令,包括分支和循环。

示例:输出 "helloworld"

 

bashCopy Code

#!/bin/sh echo 'hello $user'

运行脚本

使用以下命令运行脚本:

  • 使用 bashsh 命令:

     

    bashCopy Code

    bash /home/user/scripts/hello.sh # 绝对路径 bash hello.sh # 相对路径 sh /home/user/scripts/hello.sh # 绝对路径 sh hello.sh # 相对路径
  • 直接使用脚本路径运行(必须有文件执行权限):

     

    bashCopy Code

    ./hello.sh
  • 使用 source.

     

    bashCopy Code

    source hello.sh . hello.sh

运行方式不同

  • bash 和 sh: 不需要权限,新开一个 bash 环境运行脚本,不同用户环境无法共享变量,可能导致运行失败。
  • 脚本路径: 需要执行权限,在当前环境下执行脚本。
  • source: 在当前 bash 中运行,不需要执行权限。

变量

  • 系统变量: 所有 bash 通用。
  • 用户变量: 用户自定义变量。
  • 全局变量: 在父 bash 环境下的变量,子 bash 环境可以使用。
  • 局部变量: 在子 bash 环境下的变量。

列出当前环境系统变量

使用命令:

 

bashCopy Code

env

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值