10.8
定时任务
crontab 命令
- 编辑定时任务:
crontab -e
- 查询 crontab 任务:
crontab -l
- 删除当前用户的所有 crontab 任务:
crontab -r
用户的定时任务
每个用户都拥有属于自己的一套定时任务。
crontab 时间格式
Copy Code
* * * * * 命令
- 每个小时的第几分钟: 0-59(* 每分钟都执行)
- 每天的第几个小时: 0-23(* 每小时都执行)
- 一个月中的第几天: 1-31(* 每天执行)
- 每年的第几个月: 1-12
- 每周的星期几: 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'
运行脚本
使用以下命令运行脚本:
-
使用
bash
或sh
命令: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