diff --git "a/19\347\275\227\346\226\207\350\277\233/20240604.md" "b/19\347\275\227\346\226\207\350\277\233/20240604.md" new file mode 100644 index 0000000000000000000000000000000000000000..3fd19dc76b84bbfe70c7149f5ccb9b00cda2f2a4 --- /dev/null +++ "b/19\347\275\227\346\226\207\350\277\233/20240604.md" @@ -0,0 +1,28 @@ +## 笔记 +1.awk是一种编程语言 +2.awk[选项] '脚本'文件 + +3.选项: + - -F 指定原文件的分隔符 + - -f 执行脚本文件 + - -v 自定义一个类变量 + +4.脚本-语句块 + - 开始语句块 + 1.模式:BEGIN + 2.动作:{FS=","},设置原文件分隔符 + {print"------"} + {name="xx"} + - 通用语句块 + - 结尾语句块 + +5.内置的变量 + - NR:Numbers of Rows + 总行数(在具体的模式中表示当前行号) + - NF:Numbers of files + 总行列-$NF-最后一列 + - $0:表示一整行 + - $1,$2... - $数字-数字表示第几列 + - FS=原文分隔符 + - OFS=输出的分隔符 + diff --git "a/19\347\275\227\346\226\207\350\277\233/20240605.md" "b/19\347\275\227\346\226\207\350\277\233/20240605.md" new file mode 100644 index 0000000000000000000000000000000000000000..4c13df5bbbb803bf22cd4ac6177f5d666b7d96a5 --- /dev/null +++ "b/19\347\275\227\346\226\207\350\277\233/20240605.md" @@ -0,0 +1,100 @@ +# vim + +```html +命令模式 +i -- 切换到输入模式,在光标当前位置开始输入文本。 +x -- 删除当前光标所在处的字符。 +: -- 切换到底线命令模式,以在最底一行输入命令。 +a -- 进入插入模式,在光标下一个位置开始输入文本。 +o:在当前行的下方插入一个新行,并进入插入模式。 +O -- 在当前行的上方插入一个新行,并进入插入模式。 +dd -- 剪切当前行。 +yy -- 复制当前行。 +p(小写) -- 粘贴剪贴板内容到光标下方。 +P(大写)-- 粘贴剪贴板内容到光标上方。 +u -- 撤销上一次操作。 +Ctrl + r -- 重做上一次撤销的操作。 +:w -- 保存文件。 +:q -- 退出 Vim 编辑器。 +:q! -- 强制退出Vim 编辑器,不保存修改。 + +``` + +```html +输入模式 +字符按键以及Shift组合,输入字符 +ENTER,回车键,换行 +BACK SPACE,退格键,删除光标前一个字符 +DEL,删除键,删除光标后一个字符 +方向键,在文本中移动光标 +HOME/END,移动光标到行首/行尾 +Page Up/Page Down,上/下翻页 +Insert,切换光标为输入/替换模式,光标将变成竖线/下划线 +ESC,退出输入模式,切换到命令模式 +``` + +```html +底线命令模式 +w:保存文件。 +:q:退出 Vim 编辑器。 +:wq:保存文件并退出 Vim 编辑器。 +:q!:强制退出Vim编辑器,不保存修改。 + +``` + +```html +set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号 +:set nonu 与 set nu 相反,为取消行号! +``` + +1. vi 编辑器有几种模式? + + ```html + 三种(命令模式,输入模式,命令行模式) + ``` + + + +2. 如何进入 vi 编辑器的插入模式 + + ```html + 在命令模式下按下i就进入输入模式,使用Esc键可以返回普通模式 + ``` + + + +3. 如何进入 vi 编辑器的可视化模式 + + ```html + 1.字符模式,在命令模式中按v键进入 + 2.行模式,在命令模式中按V键进入 + 3.块模式,在命令模式中按Ctrl+ v键进入 + ``` + + + +4. 在 vi 编辑器中如何复制一行 + + ```ht + yy 复制整行到粘贴板 + ``` + + + +5. 在 vi 编辑器中如何进行粘贴 + + ```ht + 1.p 在当前位置后粘贴 + 2.P 在当前位置前粘贴 + ``` + + + +6. 如何删除从 3 行到 15 行的所有数据 + + ```html + 按一下ESC键,确保退出编辑模式 + :3,15d + ``` + + \ No newline at end of file diff --git "a/19\347\275\227\346\226\207\350\277\233/20240607.md" "b/19\347\275\227\346\226\207\350\277\233/20240607.md" new file mode 100644 index 0000000000000000000000000000000000000000..e0dd0a8d042baf5754a5fb929cbd077e40747b1f --- /dev/null +++ "b/19\347\275\227\346\226\207\350\277\233/20240607.md" @@ -0,0 +1,67 @@ +## SSL证书的获取与部署 + +```html +一、ssl证书的获取: + +购买证书 +有免费版,到时间就需要申请 +(每个阿里云账号一年内均可申请20个免费SSL证书) +“SSL证书”–“免费证书”–“立即购买” +创建证书 +SSL证书”–“免费证书”–“创建证书 +申请证书 +证书申请表单填写 +解析域名 +如果是自动DNS验证,直接点击验证即可;如果是手动DNS验证,需要到域名注册商处,为域名添加TXT记录类型的域名解析 +下载证书包(两个文件) +阿里云SSL证书支持多种服务器类型,如:Tomcat、Apache、Nginx、IIS、JKS、其他及根证书下载 +根据服务器类型,选择对应的SSL证书下载即可 +``` + +```html +二、ssl证书的部署: + +在nginx里的/etc/nginx/conf.d路径下创建文件夹 + +在命令终端里,把本地下载好的证书包,上传到nginx里 + +找到装载配置信息的文件夹,并编辑它 + +更改域名(默认有两个,一个带www的) +更改两个证书文件的路径(文件在事先准备好的文件里) +更改root html(映射),因为默认进入nginx页面 + +``` + +```html +server { + #HTTPS的默认访问端口443。 + listen 443 ssl; + + #填写证书绑定的域名 + server_name ; + + #填写证书文件绝对路径 + ssl_certificate cert/.pem; + #填写证书私钥文件绝对路径 + ssl_certificate_key cert/.key; + #表示优先使用服务端加密套件。默认开启 + ssl_prefer_server_ciphers on; + location / { + root html#更改四 + index index.html index.htm; + } +} +``` + +```html +检测信息更改是否成功: +nginx -t +# 会出现is ok +# 否则弹出报错的地方 +``` + +```html +重新启动 Nginx 服务,使配置文件生效。可以运行以下命令来重新启动 Nginx 服务: +nginx -s reload # 会出现started +``` \ No newline at end of file diff --git "a/19\347\275\227\346\226\207\350\277\233/20240611.md" "b/19\347\275\227\346\226\207\350\277\233/20240611.md" new file mode 100644 index 0000000000000000000000000000000000000000..ea05f216fab6f6b2ddad48582cf66612c6d354f4 --- /dev/null +++ "b/19\347\275\227\346\226\207\350\277\233/20240611.md" @@ -0,0 +1,591 @@ +## 刚安装完Deiban系统 7步走: + +1. 设置国内软件源镜像 /etc/apt/sources.list +2. 更新软件包列表:apt update +3. 更新系统:apt upgrade -y +4. 安装vim:apt install vim -y +5. 编辑网卡配置,设置静态IP: + +```bash +vim /etc/network/interfaces + +# 按如下设置 +# The primary network interface +allow-hotplug ens192 +iface ens192 inet static +address 172.16.90.71 +netmask 255.255.255.0 +gateway 172.16.90.1 + +#重新启动网络服务 +sudo systemctl restart networking +``` + +5. 修改SSHD配置,允许root用户远程登录 + +```bash +vim /etc/ssh/sshd_config + +# 取消如下代码的注释,并且将其值设置为yes,以允许root用户的远程登录 +PermitRootLogin yes + +``` + +6. 配置环境变量,简单化ls的用法 + + +/etc/profile.d/ls.sh /etc/nginx/conf.d/mjdo.com.conf + +```bash + export LS_OPTIONS='--color=auto' + alias ls='ls $LS_OPTIONS' + alias ll='ls $LS_OPTIONS -l' + alias l='ls $LS_OPTIONS -lA' + +``` +7. 配置环境变量,设置当前系统字符集,以接受中文 + +/etc/profile.d/lang.sh +```bash +export LC_ALL=C.utf8 +``` + +要确保设置生效,可以重新加载该文件并检查环境变量 + +```sh +source /etc/profile.d/lang.sh +echo $LC_ALL +``` + + + +几个常用命令 + +以下是一些常见的 Linux 命令,包括它们的使用场景、核心术语讲解以及示例: + +### 1. `time` + +**使用场景**:用于测量命令的执行时间。 + +**核心术语**: +- **real**:总的时间(墙上时钟时间)。 +- **user**:用户态 CPU 时间。 +- **sys**:内核态 CPU 时间。 + +**示例**: + +```bash +time ls +``` + +输出: + +```plaintext +real 0m0.003s +user 0m0.001s +sys 0m0.002s +``` + +### 2. `date` + +**使用场景**:显示或设置系统日期和时间。 + +**核心术语**: +- **%Y**:四位数的年份。 +- **%m**:两位数的月份。 +- **%d**:两位数的日期。 + +**示例**: + +```bash +date "+%Y-%m-%d %H:%M:%S" +``` + +输出: + +```plaintext +2024-06-10 15:30:00 +``` + +### 3. `timedatectl` + +**使用场景**:查看和设置系统时间和日期,时区和 NTP(网络时间协议)设置。 + +**核心术语**: +- **NTP**:网络时间协议,用于同步时间。 +- **RTC**:实时时钟。 + +**示例**: + +```bash +timedatectl status +``` + +输出: + +```plaintext +Local time: Mon 2024-06-10 15:30:00 UTC +Universal time: Mon 2024-06-10 15:30:00 UTC +RTC time: Mon 2024-06-10 15:30:00 +Time zone: Etc/UTC (UTC, +0000) +System clock synchronized: yes +NTP service: active +``` + +### 4. `reboot` + +**使用场景**:重新启动系统。 + +**核心术语**: +- **systemd**:系统和服务管理器。 + +**示例**: + +```bash +sudo reboot +``` + +### 5. `poweroff` + +**使用场景**:关闭系统电源。 + +**核心术语**: +- **halt**:停止系统所有的 CPU 功能。 + +**示例**: + +```bash +sudo poweroff +``` + +### 6. `wget` + +**使用场景**:从网络上下载文件。 + +**核心术语**: + +- **URL**:统一资源定位符。 +- **HTTP/HTTPS**:超文本传输协议。 + +**示例**: + +```bash +wget https://example.com/file.txt +``` + +### 7. `curl` + +**使用场景**:从网络上获取或发送数据。 + +**核心术语**: + +- **URL**:统一资源定位符。 +- **GET/POST**:HTTP 请求方法。 + +**示例**: + +```bash +curl -O https://example.com/file.txt +``` + +### 8. `ps` + +**使用场景**:查看当前运行的进程。 + +**核心术语**: + +- **PID**:进程标识符。 +- **TTY**:终端类型。 + +**示例**: + +```bash +ps aux # 显示所有用户的所有进程 一般会结合。grep,awk等过滤数据 +``` + +### 9. `kill` + +**使用场景**:向进程发送信号(通常用于终止进程)。 + +**核心术语**: + +- **SIGTERM**:请求中止进程。 +- **SIGKILL**:强制终止进程。 + +**示例**: + +```bash +kill 1234 # 用pidof 进程名。来查看具体的进程的进程号 +``` + +### ~~10. `killall`~~ + +~~**使用场景**:向指定名称的所有进程发送信号。~~ + +~~**核心术语**:~~ +- ~~**signal**:信号,通知进程执行某种操作。~~ + +~~**示例**:~~ + +```bash +killall firefox +``` + +### 11. `ip` + +**使用场景**:显示和操作网络接口和路由。 + +**核心术语**: + +- **address**:IP 地址。 +- **route**:路由信息。 + +**示例**: + +```bash +ip addr show +``` + +### 12. `ss` + +**使用场景**:显示套接字统计信息。旧版是netstat + +**核心术语**: +- **TCP**:传输控制协议。 +- **UDP**:用户数据报协议。 + +**示例**: + +```bash +ss -tuln # 可以查看哪些端口开放着 +``` + +### 13. `uname` + +**使用场景**:显示系统信息。 + +**核心术语**: +- **kernel**:操作系统内核。 +- **OS**:操作系统。 + +**示例**: + +```bash +uname -a +``` + +### 14. `uptime` + +**使用场景**:显示系统运行时间和负载。 + +**核心术语**: +- **load average**:系统平均负载。 + +**示例**: + +```bash +uptime +``` + +### 15. `who` + +**使用场景**:显示当前登录用户信息。 + +**核心术语**: + +- **login**:用户登录信息。 +- **TTY**:终端类型。 + +**示例**: + +```bash +who +``` + +### 16. `last` + +**使用场景**:显示系统上最近的登录信息。 + +**核心术语**: +- **wtmp**:记录登录和注销事件的文件。 + +**示例**: + +```bash +last +``` + +### 17. `ping` + +**使用场景**:测试网络连通性。 + +- **ICMP**:互联网控制消息协议。 +- **echo request**:回显请求。 + +**示例**: + +```bash +ping example.com +``` + +### 18. `traceroute` + +**使用场景**:显示到达网络主机的路径。 + +**核心术语**: +- **hop**:从一个网络节点到另一个的跳转。 +- **TTL**:生存时间。 + +**示例**: + +```bash +traceroute example.com +``` + +### 19. `history` + +**使用场景**:显示命令历史记录。 + +**核心术语**: + +- **bash history**:记录用户输入的命令历史。 + +**示例**: + +```bash +history +``` + +`top` 命令用于显示系统的运行进程信息,包括 CPU 占用情况、内存占用情况、进程列表等。通过 `top` 命令可以实时监控系统的运行状态,了解系统的负载情况。 + +`pidof` 命令用于根据进程名查找对应的进程ID(PID)。例如,如果你知道某个进程的名字,但不知道它的PID,你可以使用 `pidof` 命令来查找。语法通常是 `pidof <进程名>`,比如 `pidof python` 会返回所有名为 `python` 的进程的PID。 + + + +`free` 和 `df -h` 是两个用于查看系统资源利用情况的常用命令: + +1. **`free`**:该命令用于显示系统内存的使用情况,包括物理内存和交换空间(swap)。执行 `free` 命令时,会显示系统的内存信息,包括总内存、已使用内存、空闲内存以及缓冲区和缓存等情况。 + + 示例输出: + ``` + total used free shared buff/cache available + Mem: 8081256 2133468 3458604 430300 2488184 5261632 + Swap: 0 0 0 + ``` + + 输出中的字段含义如下: + - `total`: 总内存量 + - `used`: 已使用的内存量 + - `free`: 空闲的内存量 + - `shared`: 用于共享的内存量 + - `buff/cache`: 用于缓存的内存量 + - `available`: 可用的内存量 + +2. **`df -h`**:该命令用于显示文件系统的磁盘空间利用情况。执行 `df -h` 命令时,会显示系统中每个挂载的文件系统的磁盘使用情况,包括总容量、已使用空间、剩余空间以及挂载点等信息。 + + 示例输出: + ``` + Filesystem Size Used Avail Use% Mounted on + /dev/sda1 20G 15G 3.6G 81% / + /dev/sda2 30G 20G 8.8G 70% /home + ``` + + 输出中的字段含义如下: + - `Filesystem`: 文件系统设备 + - `Size`: 文件系统总容量 + - `Used`: 已使用的空间 + - `Avail`: 可用空间 + - `Use%`: 使用百分比 + - `Mounted on`: 挂载点 + +通过这两个命令,你可以快速了解系统的内存和磁盘空间使用情况,以便进行系统资源管理和监控。 + + + +`du` 命令用于估算文件或目录的磁盘使用情况。它可以显示指定文件或目录的磁盘使用量,以及每个子目录的磁盘使用量,帮助用户了解文件系统上的空间分布情况。以下是 `du` 命令的一些常见使用场景: + +1. **查看当前目录的磁盘使用情况**: + + ``` + 复制代码 + du -h + ``` + + 这将以人类可读的格式显示当前目录及其所有子目录的磁盘使用情况。 + +2. **查看特定目录的磁盘使用情况**: + + ``` + du -h /目录名 + ``` + + 这将显示指定目录及其所有子目录的磁盘使用情况。 + +3. **显示文件或目录的总磁盘使用量**: + + ``` + du -sh /path/to/file_or_directory + ``` + + 这将显示指定文件或目录的总磁盘使用量, `-s` 参数表示仅显示总和, `-h` 表示以人类可读的格式显示。 + +4. **显示目录中每个文件的磁盘使用量**: + + ``` + 复制代码 + du -ah /path/to/directory + ``` + + 这将显示指定目录中每个文件的磁盘使用量, `-a` 参数表示包括所有文件。 + +5. **按照磁盘使用量排序显示目录**: + + ``` + du -h | sort -h + ``` + + 这将按照磁盘使用量从小到大排序显示当前目录及其所有子目录的磁盘使用情况。 + +6. **限制显示的深度**: + + ``` + du -h --max-depth=1 /path/to/directory + ``` + + 这将仅显示指定目录的直接子目录的磁盘使用情况, `--max-depth` 参数用于指定显示的深度。 + + + + + + + + + +## 重定向和管道 + +在 Linux 和其他 Unix 系统中,重定向和管道是非常重要的功能,它们允许用户将命令的输出重定向到文件、其他命令或设备。以下是对重定向和管道符的详细解释、使用场景、核心术语以及示例。 + +### 重定向 + +重定向允许将命令的输入或输出重定向到文件或其他命令。常用的重定向符号包括 `>`、`>>`、`<`、`2>` 等。 + +#### 输出重定向 + +1. **覆盖输出重定向 `>`** + + 将命令的标准输出重定向到一个文件,如果文件已经存在,则覆盖它。 + + ```bash + ls > filelist.txt + ``` + + 这个命令将 `ls` 命令的输出保存到 `filelist.txt` 文件中,如果文件已存在,则会被覆盖。 + +2. **追加输出重定向 `>>`** + + 将命令的标准输出追加到一个文件的末尾,如果文件不存在,则创建它。 + + ```bash + echo "Hello, World!" >> greetings.txt + ``` + + 这个命令会将 "Hello, World!" 追加到 `greetings.txt` 文件中。 + +#### 输入重定向 + +1. **输入重定向 `<`** + + 将文件的内容作为命令的输入。 + + ```bash + sort < unsorted_list.txt + ``` + + 这个命令将 `unsorted_list.txt` 文件的内容作为 `sort` 命令的输入进行排序。 + +#### 错误重定向 + +1. **错误输出重定向 `2>`** + + 将命令的错误输出重定向到一个文件。 + + ```bash + ls non_existent_file 2> error_log.txt + ``` + + 这个命令会将 `ls` 命令的错误信息保存到 `error_log.txt` 文件中。 + +2. **错误输出追加重定向 `2>>`** + + 将命令的错误输出追加到一个文件。 + + ```bash + ls non_existent_file 2>> error_log.txt + ``` + + 这个命令会将 `ls` 命令的错误信息追加到 `error_log.txt` 文件中。 + +3. **同时重定向标准输出和标准错误输出** + + 使用 `&>` 符号将标准输出和错误输出同时重定向到同一个文件。 + + ```bash + command &> output_and_error_log.txt + ``` + + 这个命令会将 `command` 的标准输出和错误输出都保存到 `output_and_error_log.txt` 文件中。 + +### 管道 `|` + +管道符号 `|` 将一个命令的输出作为另一个命令的输入。管道是进行命令链式操作的重要工具。 + +#### 使用场景 + +1. **将命令的输出传递给另一个命令** + + ```bash + ls -l | grep "txt" + ``` + + 这个命令会将 `ls -l` 的输出传递给 `grep "txt"`,只显示包含 "txt" 的行。 + +2. **多命令链式操作** + + ```bash + ps aux | grep "sshd" | awk '{print $2}' + ``` + + 这个命令链会列出所有进程 (`ps aux`),然后过滤包含 "sshd" 的行 (`grep "sshd"`),最后提取进程 ID (`awk '{print $2}'`)。 + +### 示例解析 + +#### 使用管道和重定向的综合示例 + +1. **查找特定文件并将结果保存到文件** + + ```bash + find / -name "*.log" 2> errors.txt | sort > sorted_log_files.txt + ``` + + 这个命令会在根目录下查找所有以 `.log` 结尾的文件,将错误信息重定向到 `errors.txt`,并将结果进行排序后保存到 `sorted_log_files.txt`。 + +### 总结 + +- **重定向**: + - `>`:将输出重定向到文件(覆盖)。 + - `>>`:将输出追加到文件。 + - `<`:将文件内容作为输入。 + - `2>`:将错误输出重定向到文件。 + - `2>>`:将错误输出追加到文件。 + - `&>`:将标准输出和错误输出同时重定向到文件。 + +- **管道 `|`**: + - 将一个命令的输出作为另一个命令的输入,用于链式操作。 + +## 思考: + +``` +<< 是什么功能? +()把命令包括起来,是干什么功能? +``` \ No newline at end of file diff --git "a/19\347\275\227\346\226\207\350\277\233/20240612.md" "b/19\347\275\227\346\226\207\350\277\233/20240612.md" new file mode 100644 index 0000000000000000000000000000000000000000..bfc02a17e069cffd7ea1cb2e364c47a54bf3a9a8 --- /dev/null +++ "b/19\347\275\227\346\226\207\350\277\233/20240612.md" @@ -0,0 +1,41 @@ +## 特殊符号 + +1. ###### ">" :输出覆盖重定向 + + 1. 将文件标准输出保存到文件 + 2. 文件不存在就创建 + 3. 文件存在就覆盖 + 4. 标准输出 + 1. 不包含错误信息 + 2. 直接在屏幕显示 + +2. ###### ">>" :输出追踪重定向 + + 1. 将标准输出追加的文件末尾 + 2. 其中同上 + +3. "<" :输入重定向 + + 1. 将文件内容作为标准输入 + 1. 命令<文件 + +4. "2>" :错误信息覆盖重定向 + + 1. 将错误信息保存到文件 + 2. 不存在就创建 + 3. 存在就覆盖 + 4. 错误信息不包含正确的信息 + +5. "2>>" :错误信息追加重定向 + + 1. 追加到文件末尾 + 2. "&>" :正确信息和错误信息一起覆盖重定向 + 3. "&>>" :正确信息和错误信息一起追加重定向 + +6. "|" :管道,左边的输出作为右边的输入 + +7. "< >" :先输入,后输出 + +8. ">1.txt 2>2.txt" :分别将正确的和错误的保存到1.txt和2.txt + +9. "2> /dev/null" :错误信息扔掉不显示 \ No newline at end of file diff --git "a/19\347\275\227\346\226\207\350\277\233/20240614.md" "b/19\347\275\227\346\226\207\350\277\233/20240614.md" new file mode 100644 index 0000000000000000000000000000000000000000..dc8a7289804c4f181b9d7467fe0c273bab095d37 --- /dev/null +++ "b/19\347\275\227\346\226\207\350\277\233/20240614.md" @@ -0,0 +1,66 @@ +笔记 + +- 用户管理 + - 添加账户 useradd -m -s /bin/bash db2 + - 删除账户 userdel -r db2 + - 修改账户 usermod [选项同添加账户] db2 + - 查看帐户 getent passwd db2 +- 用户组管理 + - 添加用户组 groupadd stu1 + - 删除用户组 groupdel stu1 + - 添加用户到用户组 usermod -aG stu1 db2 +- 密码管理 + - 设置密码 passwd +- sudo权限管理 + - usermod -aG sudo xxx + - 修改/etc/sudoers文件 +- 登录权限管理 +- 用户环境管理 + - 用户配置文件 : .bashrc + - 用户环境变量: $PATH、$HOME、$SHELL + +## 文件与目录的权限管理 + +- 文件类型 + + - -普通文件 + - d目录 + - l连接文件 + - b c s p 等其它文件 + +- 基本权限 + + - r 读 + - w 写 + - x 执行 + +- 权限表示 + + - 字符表示 + - 数字表示 + - 4 代表 r + - 2 代表 w + - 1 代表 x + - 权限修改 + - chmod 修改权限 + - chown 修改拥有者 + - chgrp 修改所属组 + - 权限的继承 + - 目录权限下文件和目录的影响 + - umask + - 特权权限 + - SUID + - SGID + - SBIT + - 隐藏权限 + - i + - 用在文件上,无法对该文件进行任何修改 + - 用在目录上,无法在里面创建新文件,但可以修改已有文件 + - a + - 除了可追加内容外,无法进行其它修改 + - 隐藏权限的操作 + - 修改隐藏权限 chattr + - chattr +i XXX + - chattr -i XXX + - 查看隐藏权限 + - lsattr \ No newline at end of file diff --git "a/19\347\275\227\346\226\207\350\277\233/20240615.md" "b/19\347\275\227\346\226\207\350\277\233/20240615.md" new file mode 100644 index 0000000000000000000000000000000000000000..efb0b28bf03482083970299297ae19b7abf31b25 --- /dev/null +++ "b/19\347\275\227\346\226\207\350\277\233/20240615.md" @@ -0,0 +1,83 @@ +# 周期任务管理(计划任务) + +```html +1.概念:提供了一种可以重复的、指定重复周期的一种机制 + 一种执行机制 +(1).定期备份数据 +(2).系统日志管理 +(3).定时重启或服务 +(4).清理临时文件 + +2.命令时间格式 +* * * * * command +分 小时 日 月 周 命令 + +(1).分钟:表示分钟,可以是从0-59之间的任何整数 +(2).小时:表示小时,可以是从0-23之间的任何整数 +(3).日:表示日期,可以是从1-31之间的任何整数 +(4).月:表示月份,可以是从1-12之间的任何整数 +(5).周:表示星期几,可以是从0-7之间的任何整数 + +3.特殊字符: +(1)星号*:代表是所有可能的值 +(2)逗号,:可以用逗号隔开的值指定一个列表范围 +(3)中杠-:可以用整数之间的中杠表示一个整数范围 +(4)正斜线/:例如:0-23/2表示每两个小时执行一次 + 例如:*/10,如果在分钟字段,表示每十分钟执行一次 +(5)问号?:表示任意值 + + +3.分类 + (1)系统级 + /etc/cron.hourly + /etc/cron.weekly + /etc/cron.daily + /etc/cron.monthly + /etc/cron.yearly + + (2).用户级 + /var/spool/cron/crontabs/root root用户的周期任务 +``` + +```html +1.配置周期任务 +crontab:提交和管理用户的需要周期性执行的任务 + +2.语法 +crontab [选项] [参数] + +3.选项 + -e:编辑该用户的计时器设置 + -l:列出该用户的计时器设置 + -r:删除该用户的计时器设置 + -u<用户名称>:指定要设定计时器的用户名称 + +4.用户任务调度 +以下是使用者权限文件 + /etc/cron.deny:该文件所列用户不允许使用crontab命令 + /etc/cron.allow:该文件所列用户允许使用crontab命令 + /etc/spool/cron/:所有用户crontab文件存放的目录,以用户名命名 +``` + +```html +一.crond服务 + +1.启动服务 +/sbin/service crond start + +2.关闭服务 +/sbin/service crond stop + +3.重启服务 +/sbin/service crond restart + +4.重新在载入配置 +/sbin/service crond reload + +5.查看crontab服务状态 +service crond status + +6.手动启动crontab服务 +service crond start +``` +