❝Linux на самом деле является навыком, который должны знать как фронтенд, так и бэкэнд. В настоящее время многие детские туфли во фронтенде идут по большому маршруту фронтенда, не говоря уже о бэкенде. Редактор дал вам десятки тысяч слов (эта статья была удалена из-за лимита слов) О Linux Можно сказать, что это основные команды реального боя. Конечно, этого недостаточно. Редактор продолжит их обновлять позже. Вы можете следить за моими новостями и собирать их вместе, эту волну можно собрать.
❞
ls
Одна из наиболее часто используемых команд.
Формат команды: ls [ОПЦИЯ]... [ФАЙЛ]... Простой ввод:
[root@iz2ze76ybn73dvwmdij06zz /]# ls
bin dev home lib64 media opt proc run srv tmp var
boot etc lib lost+found mnt patch root sbin sys usr www
Добавьте опцию -l, она показывает разрешения, владельца, группу, размер, время, имя файла.
[root@iz2ze76ybn73dvwmdij06zz /]# ls -l
总用量 68
lrwxrwxrwx 1 root root 7 8月 26 22:36 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 8月 26 22:39 boot
drwxr-xr-x 19 root root 2960 4月 11 12:59 dev
drwxr-xr-x. 81 root root 4096 9月 5 17:09 etc
drwxr-xr-x. 2 root root 4096 4月 11 12:59 home
lrwxrwxrwx 1 root root 7 8月 26 22:36 lib -> usr/lib
lrwxrwxrwx 1 root root 9 8月 26 22:36 lib64 -> usr/lib64
drwx------. 2 root root 16384 10月 15 2017 lost+found
drwxr-xr-x. 2 root root 4096 4月 11 12:59 media
drwxr-xr-x. 2 root root 4096 4月 11 12:59 mnt
drwxr-xr-x. 3 root root 4096 8月 26 22:40 opt
drwxr-xr-x 2 root root 4096 8月 26 23:00 patch
dr-xr-xr-x 110 root root 0 4月 11 12:59 proc
dr-xr-x---. 12 root root 4096 9月 11 20:59 root
drwxr-xr-x 26 root root 760 9月 7 21:50 run
lrwxrwxrwx 1 root root 8 8月 26 22:36 sbin -> usr/sbin
drwxr-xr-x. 2 root root 4096 4月 11 12:59 srv
dr-xr-xr-x 13 root root 0 4月 11 12:59 sys
drwxrwxrwt. 9 root root 4096 9月 15 03:19 tmp
drwxr-xr-x. 13 root root 4096 8月 26 22:36 usr
drwxr-xr-x. 19 root root 4096 8月 26 22:55 var
drwxr-xr-x 6 root root 4096 8月 26 22:39 www
ls -a (все) файлы linux, начинающиеся с «.» (точка), по умолчанию скрыты, а -a может запрашивать все файлы.
[root@iz2ze76ybn73dvwmdij06zz /]# ls -a
. bin etc lib64 mnt .pearrc run sys usr
.. boot home lost+found opt proc sbin .test var
.autorelabel dev lib media patch root srv tmp www
ls -F отображает папки, оканчивающиеся на «/».
[root@iz2ze76ybn73dvwmdij06zz /]# ls -F
bin@ dev/ home/ lib64@ media/ opt/ proc/ run/ srv/ tmp/ var/
boot/ etc/ lib@ lost+found/ mnt/ patch/ root/ sbin@ sys/ usr/ www/
ls -r отображение воспоминаний, порядок по умолчанию (a,b,c,d) отображение положительного порядка, подобное этому
[root@iz2ze76ybn73dvwmdij06zz /]# ls -r
www usr sys sbin root patch mnt lost+found lib etc boot
var tmp srv run proc opt media lib64 home dev bin
ls -R() рекурсивно отображать подкаталоги
[root@iz2ze76ybn73dvwmdij06zz test]# ls -R
.:
data
./data:
img
./data/img:
car product user
./data/img/car:
./data/img/product:
./data/img/user:
ls -lS отображается в порядке убывания размера файла
[root@iz2ze76ybn73dvwmdij06zz /]# ls -lS
总用量 72
drwx------. 2 root root 16384 10月 15 2017 lost+found
dr-xr-xr-x. 5 root root 4096 8月 26 22:39 boot
drwxr-xr-x. 81 root root 4096 9月 5 17:09 etc
drwxr-xr-x. 2 root root 4096 4月 11 12:59 home
drwxr-xr-x. 2 root root 4096 4月 11 12:59 media
drwxr-xr-x. 2 root root 4096 4月 11 12:59 mnt
drwxr-xr-x. 3 root root 4096 8月 26 22:40 opt
drwxr-xr-x 2 root root 4096 8月 26 23:00 patch
dr-xr-x---. 12 root root 4096 9月 15 22:03 root
drwxr-xr-x. 2 root root 4096 4月 11 12:59 srv
drwxr-xr-x 3 root root 4096 9月 15 22:10 test
drwxrwxrwt. 9 root root 4096 9月 15 03:19 tmp
drwxr-xr-x. 13 root root 4096 8月 26 22:36 usr
drwxr-xr-x. 19 root root 4096 8月 26 22:55 var
drwxr-xr-x 6 root root 4096 8月 26 22:39 www
drwxr-xr-x 19 root root 2960 4月 11 12:59 dev
drwxr-xr-x 26 root root 760 9月 7 21:50 run
lrwxrwxrwx 1 root root 9 8月 26 22:36 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 8 8月 26 22:36 sbin -> usr/sbin
lrwxrwxrwx 1 root root 7 8月 26 22:36 bin -> usr/bin
lrwxrwxrwx 1 root root 7 8月 26 22:36 lib -> usr/lib
dr-xr-xr-x 110 root root 0 4月 11 12:59 proc
dr-xr-xr-x 13 root root 0 4月 11 12:59 sys
ls -g не выводит информацию о владельце (владельце)
[root@iz2ze76ybn73dvwmdij06zz /]# ls -g
总用量 72
lrwxrwxrwx 1 root 7 8月 26 22:36 bin -> usr/bin
dr-xr-xr-x. 5 root 4096 8月 26 22:39 boot
-rw-r--r-- 1 root 0 9月 15 22:20 c
drwxr-xr-x 19 root 2960 4月 11 12:59 dev
drwxr-xr-x. 81 root 4096 9月 5 17:09 etc
drwxr-xr-x. 2 root 4096 4月 11 12:59 home
lrwxrwxrwx 1 root 7 8月 26 22:36 lib -> usr/lib
lrwxrwxrwx 1 root 9 8月 26 22:36 lib64 -> usr/lib64
drwx------. 2 root 16384 10月 15 2017 lost+found
drwxr-xr-x. 2 root 4096 4月 11 12:59 media
drwxr-xr-x. 2 root 4096 4月 11 12:59 mnt
drwxr-xr-x. 3 root 4096 8月 26 22:40 opt
drwxr-xr-x 2 root 4096 8月 26 23:00 patch
dr-xr-xr-x 110 root 0 4月 11 12:59 proc
dr-xr-x---. 12 root 4096 9月 15 22:18 root
drwxr-xr-x 26 root 760 9月 7 21:50 run
lrwxrwxrwx 1 root 8 8月 26 22:36 sbin -> usr/sbin
drwxr-xr-x. 2 root 4096 4月 11 12:59 srv
dr-xr-xr-x 13 root 0 4月 11 12:59 sys
drwxr-xr-x 3 root 4096 9月 15 22:18 test
drwxrwxrwt. 9 root 4096 9月 15 03:19 tmp
drwxr-xr-x. 13 root 4096 8月 26 22:36 usr
drwxr-xr-x. 19 root 4096 8月 26 22:55 var
drwxr-xr-x 6 root 4096 8月 26 22:39 www
ls -lG скрывает всю информацию о группе (группе)
[root@iz2ze76ybn73dvwmdij06zz /]# ls -lG
总用量 72
lrwxrwxrwx 1 root 7 8月 26 22:36 bin -> usr/bin
dr-xr-xr-x. 5 root 4096 8月 26 22:39 boot
-rw-r--r-- 1 root 0 9月 15 22:20 c
drwxr-xr-x 19 root 2960 4月 11 12:59 dev
drwxr-xr-x. 81 root 4096 9月 5 17:09 etc
drwxr-xr-x. 2 root 4096 4月 11 12:59 home
lrwxrwxrwx 1 root 7 8月 26 22:36 lib -> usr/lib
lrwxrwxrwx 1 root 9 8月 26 22:36 lib64 -> usr/lib64
drwx------. 2 root 16384 10月 15 2017 lost+found
drwxr-xr-x. 2 root 4096 4月 11 12:59 media
drwxr-xr-x. 2 root 4096 4月 11 12:59 mnt
drwxr-xr-x. 3 root 4096 8月 26 22:40 opt
drwxr-xr-x 2 root 4096 8月 26 23:00 patch
dr-xr-xr-x 110 root 0 4月 11 12:59 proc
dr-xr-x---. 12 root 4096 9月 15 22:18 root
drwxr-xr-x 26 root 760 9月 7 21:50 run
lrwxrwxrwx 1 root 8 8月 26 22:36 sbin -> usr/sbin
drwxr-xr-x. 2 root 4096 4月 11 12:59 srv
dr-xr-xr-x 13 root 0 4月 11 12:59 sys
drwxr-xr-x 3 root 4096 9月 15 22:18 test
drwxrwxrwt. 9 root 4096 9月 15 03:19 tmp
drwxr-xr-x. 13 root 4096 8月 26 22:36 usr
drwxr-xr-x. 19 root 4096 8月 26 22:55 var
drwxr-xr-x 6 root 4096 8月 26 22:39 www
10.ls -li 显示文件的索引号
[root@iz2ze76ybn73dvwmdij06zz /]# ls -li
ls -li отображает порядковый номер файла
[root@iz2ze76ybn73dvwmdij06zz /]# ls -li
总用量 72
7628 lrwxrwxrwx 1 root root 7 8月 26 22:36 bin -> usr/bin
1179650 dr-xr-xr-x. 5 root root 4096 8月 26 22:39 boot
4923 -rw-r--r-- 1 root root 0 9月 15 22:20 c
1026 drwxr-xr-x 19 root root 2960 4月 11 12:59 dev
917505 drwxr-xr-x. 81 root root 4096 9月 5 17:09 etc
655362 drwxr-xr-x. 2 root root 4096 4月 11 12:59 home
17 lrwxrwxrwx 1 root root 7 8月 26 22:36 lib -> usr/lib
13 lrwxrwxrwx 1 root root 9 8月 26 22:36 lib64 -> usr/lib64
11 drwx------. 2 root root 16384 10月 15 2017 lost+found
786434 drwxr-xr-x. 2 root root 4096 4月 11 12:59 media
131074 drwxr-xr-x. 2 root root 4096 4月 11 12:59 mnt
393219 drwxr-xr-x. 3 root root 4096 8月 26 22:40 opt
1966081 drwxr-xr-x 2 root root 4096 8月 26 23:00 patch
1 dr-xr-xr-x 110 root root 0 4月 11 12:59 proc
131073 dr-xr-x---. 12 root root 4096 9月 15 22:18 root
218 drwxr-xr-x 26 root root 760 9月 7 21:50 run
15 lrwxrwxrwx 1 root root 8 8月 26 22:36 sbin -> usr/sbin
393220 drwxr-xr-x. 2 root root 4096 4月 11 12:59 srv
1 dr-xr-xr-x 13 root root 0 4月 11 12:59 sys
2097153 drwxr-xr-x 3 root root 4096 9月 15 22:18 test
393217 drwxrwxrwt. 9 root root 4096 9月 15 03:19 tmp
1048578 drwxr-xr-x. 13 root root 4096 8月 26 22:36 usr
262145 drwxr-xr-x. 19 root root 4096 8月 26 22:55 var
1441793 drwxr-xr-x 6 root root 4096 8月 26 22:39 www
ls -lt создает файлы a b в порядке времени модификации (обратный порядок)
[root@iz2ze76ybn73dvwmdij06zz test]# ls -lt
总用量 0
-rw-r--r-- 1 root root 0 9月 15 22:18 b
-rw-r--r-- 1 root root 0 9月 15 22:18 a
ls -version
[root@iz2ze76ybn73dvwmdij06zz test]# ls --version
ls (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本<http://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。
由Richard M. Stallman 和David MacKenzie 编写。
cat
cat, снова относительно высокочастотная команда. Более официальное заявление состоит в том, что команда используется для связывания файлов и печати на стандартный вывод. Эту команду вывода текста можно использовать для просмотра содержимого файла, создания содержимого и т. д. Ниже мы представим еще несколько практических применений. Формат команды: cat [параметры]... [файлы]...
cat -n для просмотра и отображения номеров строк
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat -n a
1 this is a txt
2 hello every body
3 hello world
4 hahaha
cat создает пустой файл b
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat >b <<EOF
> EOF
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# ls
a b
пустое содержимое файла cat
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat >a<<EOF
> EOF
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat a
кот пишет контент (если исходный контент будет перезаписан)
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat >a<<EOF
> today is a good day
> because off work
> hahaha
> EOF
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat a
today is a good day
because off work
hahaha
cat отображает содержимое нескольких файлов одновременно (напишите happy в b)
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat a > b
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat b
today is a good day
because off work
hahaha
Дополнительный контент Вы можете видеть, что контент будет добавлен после использования даже одного >
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat a >> b
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat b
today is a good day
because off work
hahaha
today is a good day
because off work
hahaha
cat --help (если хотите узнать больше, можете попробовать сами)
[root@iz2ze76ybn73dvwmdij06zz linuxdemo]# cat --help
用法:cat [选项]... [文件]...
将[文件]或标准输入组合输出到标准输出。
-A, --show-all 等于-vET
-b, --number-nonblank 对非空输出行编号
-e 等于-vE
-E, --show-ends 在每行结束处显示"$"
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与-vT 等价
-T, --show-tabs 将跳格字符显示为^I
-u (被忽略)
-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外
--help 显示此帮助信息并退出
--version 显示版本信息并退出
如果没有指定文件,或者文件为"-",则从标准输入读取。
示例:
cat f - g 先输出f 的内容,然后输出标准输入的内容,最后输出g 的内容。
cat 将标准输入的内容复制到标准输出。
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告cat 的翻译错误
要获取完整文档,请运行:info coreutils 'cat invocation'
Права пользователя
Все мы знаем, что Linux — это многозадачная многопользовательская операционная система. Несколько пользователей могут одновременно выполнять разные задачи в операционной системе, и один пользователь также может войти в систему, чтобы управлять несколькими людьми. Вообще говоря, root имеет самые большие полномочия. База данных, которую мы часто используем, обычно использует пользователя mysql. Для веб-страниц мы можем использовать учетную запись www. Управляется некоторыми специалистами. Для систематического изучения, я думаю, необходимо понять его базовые знания.
Классификация ролей Linux
Суперпользователь: root (идентификатор пользователя --UID) 0 Высшие административные привилегии.
обычный пользователь:
系统用户 UID:1-999(rhel7 centos7) 1-499(rhel6)
本地用户 UID:1000+(rhel7 centos7) 500+(rhel6)
UID: идентификатор пользователя, уникальный идентификатор.
групповая классификация Linux
Группа:
Классификация групп:
根据账号的功能分类:
超级用户组: root GID:0
普通用户组 :
系统用户组: GID 1---999
本地用户组: GID 1000+
Отношения пользователя и группы Linux
Пользователь принадлежит к одной группе или нескольким группам, а несколько пользователей могут принадлежать к одной группе или нескольким группам.
Связанные файлы конфигурации для пользователей и групп Linux
1./etc/passwd: Информация о пользователе и атрибутах.
2./etc/group: информация о группе и атрибутах.
3./etc/shadow: Пароль пользователя и информация об атрибутах.
4./etc/gshadow: Групповой пароль и информация об атрибутах.
5./etc/default/useradd: Установите файл правил для добавления пользователей.
6./etc/login.defs: Установить ограничения для учетной записи пользователя.
файл с информацией о пользователе linux
Самый важный файл в управлении пользователями, этот файл открыт для всех пользователей, в каждой строке хранится информация о пользователе, а каждый атрибут отделяется двоеточием.
cat /etc/passwd
root:x:0:0:root:/root:/bin/zsh
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
Пример: корень:x:0:0:корень:/корень:/bin/zsh
1. Имя пользователя для входа: root
2. Заполнитель для пароля пользователя: x
3. UID пользователя: 0
4. GID группы пользователей: 0
5. Описание учетной записи пользователя: root
6. Местоположение домашнего каталога пользователя: /root
7. Пользовательская оболочка по умолчанию: /bin/zsh (по умолчанию /bin/bash)
Файл информации о пароле Linux
Только пользователь root имеет разрешение на чтение в этом файле, в каждой строке хранится запись пользователя, а каждый атрибут отделяется двоеточием.
cat /etc/shadow
root:$6$LxE7qiaZ$ZZXf/aCO1Zqs1oOS9WDutUk9rFOq4MOoSG9IeXq2f5sduGrgfYvzOWHZmJZFGC.0Of1DjCna0M.oQZTY8r00/.:17769:0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
Пример: бин:*:17110:0:99999:7::: 1. Имя пользователя для входа: bin
2. Зашифрованный пароль: * означает, что пароль заблокирован
3. Дата последней смены пароля: 17110 представляет собой количество дней до 1970-1-1, в течение которых пароль не может быть изменен.
4. Период изменения пароля: 99999 означает, что никогда не нужно менять пароль, если это другое число, это означает, сколько дней с 1970-1-1 пароль необходимо изменить.
5. Максимальное количество дней для смены пароля: максимальное количество дней, в течение которых пароль остается действительным.
6. Предупреждение об истечении срока действия пароля: сколько дней до официального истечения срока действия пароля (-1, никогда не запрашивать)
7. Через сколько дней после истечения срока действия пароля отключить пользователя: войти можно, но работать нельзя.
8. Дата отключения пользователя: через сколько дней после истечения срока действия учетной записи невозможно войти в систему.
9. Зарезервированные параметры
файл с информацией о группе linux
Здесь хранится информация о группе пользователей, одна групповая запись хранится в одной строке, а атрибуты разделяются двоеточиями.
➜ ~ cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
Пример: корень:х:0:
1. Имя группы: корень
2. Заполнитель группового пароля: x
3. GID группы: 0
Основы управления установочными пакетами
Я считаю, что большинство людей должны быть такими, как я. Они начинали с Windows в начале, поэтому они знакомы с установочными пакетами на платформе Windows, такими как .exe. Это слишком распространено? Как правило, mysql был установлен на Windows, Я считаю, что .msi также виден. Большинство серверов Linux, поэтому давайте изучим основы установочного пакета Linux. Инструменты, используемые разными системами дистрибуции, также различаются. В настоящее время серверы большинства компаний основаны на Centos, поэтому Centos будет использоваться в качестве примера в будущем.
на основе красной шляпы
yum
zypper
rpm
на базе центос
yum
rpm
rpm
Полное имя: Диспетчер пакетов Redhat
URL для скачивания: http://rpmfind.net
Давайте сначала посмотрим на формат именования пакета, в качестве примера возьмем rpm-5.4.10-10.i586.rpm.
об/мин : имя пакета
5 : номер основной версии
4 : дополнительный номер версии
10 : номер версии
i586: платформа архитектуры процессора
rpm : суффикс пакета
yum
Решите проблему зависимости установки пакетов, автоматически загружайте пакеты на основе архитектуры c/s. Файл репо — это файл конфигурации источника yum, а файл изменений определяет информацию о репозитории программного обеспечения. Почему это называется архитектурой c/s?Первоначально заголовок программного обеспечения rpm будет записывать информацию о зависимостях модифицированного программного обеспечения, поэтому вы можете проанализировать содержимое заголовка, узнать связанные с ним зависимости и записать информацию. Затем сервер предоставляет программные пакеты этих пакетов, а затем анализирует зависимости пакетов и записывает их в определенный каталог на сервере. При установке программного обеспечения клиент загружает свой файл зависимостей записи, анализирует его и, наконец, загружает за один раз.
Основы управления процессами
Вообще говоря, программы делятся на две категории: системные программы и прикладные программы. Можно сказать, что работающая программа — это процесс, процесс занимает место в памяти, и когда вы завершаете процесс, ресурсы также освобождаются.
тип процесса
Пользовательский процесс: собственная программа пользователя, пользователь может управлять ее открытием и закрытием.
Интерактивный процесс: процесс, который взаимодействует с пользователем.
Пакетный процесс: это набор процессов, которые последовательно запускают другие процессы.
Демон: Процесс, работающий постоянно.crond.
свойства процесса
Идентификатор процесса: (pid) Уникальный числовой идентификатор для различения различных процессов.
Процесс имеет родительский процесс и дочерний процесс.
ID пользователя (uid), запустившего процесс, и группу пользователя.
Три состояния процесса:
-
запустить --R
-
спящий режим -- С
-
Зомби -- Z
Приоритет процесса: диапазон значений (-20, 19), чем меньше значение, тем выше приоритет, по умолчанию 0.
Терминал, к которому привязан процесс.
Процесс использования ресурсов.
Отношения процесса родитель-потомок
Если родительский процесс завершится первым, дочерний процесс будет принят процессом инициализации. Если дочерний процесс завершается первым, а родительский процесс не вызывает ожидание или ожидание, процесс находится в мертвом состоянии.Если вы хотите избежать этой ситуации, вам нужно вызвать ожидание или ожидание в родительском процессе.
Инструмент управления процессами
ps: 查看进程。
top: 可以查看进程的动态信息。
kill: 杀进程。
pstree: 查看进程树。
pgrep: 搜进程。
lsof: 查看进程打开的文件。
Практика управления процессами
ps
Статически отображать информацию о текущем процессе.
Команда: пс
Синтаксис: параметр ps
Общие параметры:
a 显示所有用户的进程
r 显示运行中的进程
l 长格式输出
u 按用户名和启动时间的顺序来显示进程
f 用树形格式来显示进程
x 显示没有控制终端的进程
работать: Формат BSD для отображения процесса
➜ ~ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 43364 3596 ? Ss 11月03 0:01 /usr/lib/syst
root 2 0.0 0.0 0 0 ? S 11月03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11月03 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 11月03 0:00 [kworker/0:0H
root 7 0.0 0.0 0 0 ? S 11月03 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11月03 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 11月03 0:05 [rcu_sched]
root 10 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/0]
root 11 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/1]
root 12 0.0 0.0 0 0 ? S 11月03 0:00 [migration/1]
root 13 0.0 0.0 0 0 ? S 11月03 0:00 [ksoftirqd/1]
root 15 0.0 0.0 0 0 ? S< 11月03 0:00 [kworker/1:0H
Стандартный формат для отображения процесса в стиле unix
~ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11月03 ? 00:00:01 /usr/lib/systemd/systemd --syste
root 2 0 0 11月03 ? 00:00:00 [kthreadd]
root 3 2 0 11月03 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 11月03 ? 00:00:00 [kworker/0:0H]
root 7 2 0 11月03 ? 00:00:00 [migration/0]
root 8 2 0 11月03 ? 00:00:00 [rcu_bh]
root 9 2 0 11月03 ? 00:00:05 [rcu_sched]
root 10 2 0 11月03 ? 00:00:00 [watchdog/0]
root 11 2 0 11月03 ? 00:00:00 [watchdog/1]
root 12 2 0 11月03 ? 00:00:00 [migration/1]
root 13 2 0 11月03 ? 00:00:00 [ksoftirqd/1]
root 15 2 0 11月03 ? 00:00:00 [kworker/1:0H]
root 17 2 0 11月03 ? 00:00:00 [kdevtmpfs]
root 18 2 0 11月03 ? 00:00:00 [netns]
root 19 2 0 11月03 ? 00:00:00 [khungtaskd]
root 20 2 0 11月03 ? 00:00:00 [writeback]
root 21 2 0 11月03 ? 00:00:00 [kintegrityd]
Детали атрибута:
ПОЛЬЗОВАТЕЛЬ: владелец процесса
PID: идентификатор процесса
%CPU: процент загрузки ЦП
%MEM: Процент обработки памяти
VSZ: Размер виртуальной памяти, занимаемой процессом
RSS: фиксированный объем используемой памяти
Статус процесса STAT
R 正在运行可中在队列中可过行的;
скопировать кодS 处于休眠状态; T 停止或被追踪; Z 僵尸进程; N 优先级较低的进程 L 有些页被锁进内存; s 进程的领导者(在它之下有子进程)
START время запуска процесса;
Процесс TIME потребляет процессорное время;
КОМАНДА имя и параметры команды;
Сортировать по указанному свойству:
Сортировать по ЦП от меньшего к большему.
➜ ~ ps aux --sort %cpu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 43364 3596 ? Ss 11月03 0:01 /usr/lib/syst
root 2 0.0 0.0 0 0 ? S 11月03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11月03 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 11月03 0:00 [kworker/0:0H
root 7 0.0 0.0 0 0 ? S 11月03 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11月03 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 11月03 0:05 [rcu_sched]
root 10 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/0]
root 11 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/1]
Сортировать по ЦП от большего к меньшему.
➜ ~ ps aux --sort -%cpu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 21342 0.3 0.4 137184 17112 ? Ssl 03:24 1:16 /usr/local/aegi
root 1 0.0 0.0 43364 3596 ? Ss 11月03 0:01 /usr/lib/syst
root 2 0.0 0.0 0 0 ? S 11月03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11月03 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 11月03 0:00 [kworker/0:0H
root 7 0.0 0.0 0 0 ? S 11月03 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11月03 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 11月03 0:05 [rcu_sched]
root 10 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/0]
root 11 0.0 0.0 0 0 ? S 11月03 0:00 [watchdog/1]
root 12 0.0 0.0 0 0 ? S 11月03 0:00 [migration/1]
root 13 0.0 0.0 0 0 ? S 11月03 0:00 [ksoftirqd/1]
top
В отличие от ps, команда top может просматривать динамическую информацию о процессе.
Команда: сверху
Синтаксис: верхний параметр
Общие параметры:
работать:
➜ ~ top
top - 11:38:42 up 13:15, 2 users, load average: 0.01, 0.03, 0.05
Tasks: 98 total, 1 running, 97 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3881688 total, 229264 free, 543932 used, 3108492 buff/cache
KiB Swap: 1049596 total, 1049596 free, 0 used. 3026944 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 43364 3596 2340 S 0.0 0.1 0:01.79 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.14 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+
7 root rt 0 0 0 0 S 0.0 0.0 0:00.33 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:05.73 rcu_sched
Объяснение атрибута:
Первые пять строк представляют собой статистику сопоставления данных.
Первая строка:
11:38:42 当前时间
up 13:15 系统运行时间,格式为时:分
2 user 当前登陆用户数量
load average: 0.01, 0.03, 0.05 系统负载,任务队列平均长度 1分钟,5分钟,15分钟前到现在的平均值。
Вторая и третья строки:
98 total 进程总数量
1 running 正在运行的进程数量
97 sleeping 睡眠的进程数量
0 stopped 停止的进程数量
0 zombie 僵尸进程数量
%Cpu(s):
0.2 us 系统用户进程使用cpu百分比
0.0 sy 内核进程占用cpu百分比
0.0 ni 用户进程空间内改变过优先级的进程占用cpu百分比
99.8 id 空闲cpu百分比
0.0 wa 等待输入输出的cpu时间百分比
0.0 hi 硬件cpu中断占用百分比
0.0 si 软中断占用百分比
0.0 st 虚拟机占用百分比
Четвертая и пятая строки:
Память: (единица К)
3881688 total 物理内存总量
229264 free 空闲内存总量
543932 used 使用的物理内存总量
3108492 buff/cache 内核缓存的内存量
Обмен: (единица К)
1049596 total 交换区总量
1049596 free 空闲交换区总量
0 used 使用的交换区总量
3026944 avail Mem 可利用的内存量
Строка заголовка:
PID: идентификатор процесса
ПОЛЬЗОВАТЕЛЬ: имя пользователя владельца процесса.
PR: приоритет
NI: приоритет процесса, значение nice, отрицательное значение -> высокий приоритет, положительное значение -> низкий приоритет
VIRT: общая виртуальная память virt=swap + res
RES: фактический объем используемой памяти.
SHR: размер общей памяти
S: статус процесса
d: 不可中断的睡眠状态
r: 运行
s: 睡眠
t: 跟踪
z: 僵尸进程
%CPU: процент времени ЦП, использованного с момента последнего обновления.
%MEM: процент физической памяти, используемой процессом.
ВРЕМЯ+: общее время, в течение которого процесс использует ЦП, единица измерения составляет 1/100 секунды.
КОМАНДА: командная строка
kill
Команда: убить
грамматика:
kill [-s signal|-p] [-q sigval] [-a] [--] pid...
kill -l [signal]
Общие параметры:
-l 列出所有信号名称
-s 指定发送信号(默认)
-u 指定用户
работать: Список всех имен сигналов
➜ ~ kill -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
принудительное прекращение
➜ ~ kill -9 23423
终止
➜ ~ kill -15 22323
Убить все процессы указанного пользователя
➜ ~ kill -u superh
каталог процедур
Этот каталог содержит информацию о ядре и текущем состоянии процесса.
➜ /proc ls
1 21320 21628 240 392 7 diskstats loadavg swaps
10 21342 21976 242 42 722 dma locks sys
10353 21465 21977 243 44 7561 driver mdstat sysrq-trigger
10509 21613 21978 244 442 8 execdomains meminfo sysvipc
107 21614 22 249 45 803 fb misc timer_list
11 21615 220 26 46 8179 filesystems modules timer_stats
11010 21616 22285 261 466 8307 fs mounts tty
11102 21617 22287 262 467 8327 interrupts mtrr uptime
12 21618 22361 267 469 9 iomem net version
13 21619 22363 268 476 acpi ioports pagetypeinfo vmallocinfo
14461 21620 22396 3 477 buddyinfo irq partitions vmstat
15 21621 22467 31 485 bus kallsyms sched_debug zoneinfo
17 21622 225 3198 5 cgroups kcore schedstat
18 21623 229 32 505 cmdline keys scsi
19 21624 23 33 506 consoles key-users self
2 21625 23884 336 5217 cpuinfo kmsg slabinfo
20 21626 23885 34 5515 crypto kpagecount softirqs
21 21627 24 357 65 devices kpageflags stat
Каждая метка выше — это имя каталога, названного в честь pid нашего текущего процесса.
free
Просмотр использования системы и свободной памяти.
Команда: бесплатно
Синтаксис: свободный параметр
Общие параметры:
-b, --bytes byte为单位展示
-k, --kilo k为单位展示
-m, --mega m为单位展示
-g, --giga g为单位展示
работать:
➜ ~ free -m
total used free shared buff/cache available
Mem: 3790 536 210 2 3043 2950
Swap: 1024 0 1024
Единица отображается в г.
➜ ~ free -h
total used free shared buff/cache available
Mem: 3.7G 538M 207M 2.4M 3.0G 2.9G
Swap: 1.0G 0B 1.0G
поиск файлов
При выполнении действий, связанных с эксплуатацией и обслуживанием, мы должны проверять такие и другие файлы, вообще говоря, мы можем проверить, например, где находится файл с именем xxx.conf, проверить лог и местонахождение исполняемого файла.
Обзор
which : 查看执行文件的位置。
whereis : 查看可执行文件位置和相关文件。
locate : 配合数据库缓存,快速查看文件的位置。
grep : 过滤匹配,他是一个文件搜索工具。
find : 可以根据条件查看文件。
which
Команда: какой
Синтаксис: какой параметр запроса является целью
Общие команды: Обычно используется без параметров
--all, -a 显示所有的匹配路径
работать:
➜ ~ which pwd
/usr/bin/pwd
whereis
Команда: где
Синтаксис: где цель запроса параметра
Общие команды:
一般不加参数使用
-b 只搜索二进制文件
-B <目录> 定义二进制文件查找路径
-m 只搜索 man 手册
-M <目录> 定义 man 手册查找路径
-s 只搜索源代码
-S <目录> 定义源代码查找路径
работать:
➜ ~ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
locate
Команда: найти
Синтаксис: найти имя файла
Общие параметры: никто
работать: Функции locate и find аналогичны, но эффективность поиска выше, потому что locate ищет в базе данных, а find ищет в файле каталога.
база данных:
➜ ~ ls /var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db
Связанные файлы конфигурации:
➜ ~ ls /etc/updatedb.conf
/etc/updatedb.conf
Связанные временные задачи:
➜ ~ ls /etc/cron.daily/mlocate
/etc/cron.daily/mlocate
Пример:
➜ ~ touch shafa
➜ ~ locate shafa
➜ ~ updatedb
➜ ~ locate shafa
/root/shafa
Примечание. Если мы ищем новые файлы в этот день, нам нужно вручную обновить b.
grep
Команда: греп
Синтаксис: файл целевого значения параметра grep
Общие параметры:
-v 取反
-i 忽略大小写
-n 输出的同时打印行号
^* 以*开头
*$ 以*结尾
^$ 空行
работать:
Проверьте /etc/passwd на наличие строки с root
➜ ~ grep root /etc/passwd
root:x:0:0:root:/root:/bin/zsh
operator:x:11:0:operator:/root:/sbin/nologin
Проверьте /etc/passwd на наличие строк без рута (больше контента, некоторые строки запрещены)
➜ ~ grep -v root /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
Проверьте /etc/passwd на наличие строки с www и отобразите номер строки
➜ ~ grep -n www /etc/passwd
23:www:x:1000:1000::/home/www:/sbin/nologin
find
Команда: найти
Синтаксис: найти вывод аргументов пути
Общие параметры:
路径: 例如用 . 来表示当前目录,用 / 来表示系统根目录。
-print: 显示的时候”\n”做为定界符, 换行
-print0:与xargs配套使用,以“\0”做为定界符
найти общие параметры команды:
-name 按照文件名查找文件。 “名称”
-perm 按照文件权限来查找文件。666 777 等
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
-user 按照文件属主来查找文件
-atime -ctime (单位是天)
-mmin -cmin -amin(单位是分钟)
-size n [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
-follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
работать:
Просмотр файлов, начинающихся с test., в текущем каталоге
➜ ~ find . -name "test*"
./test.txt
./autojump/tests
./test.1
Просмотрите файлы, начинающиеся с test., в текущем каталоге, и результаты вывода будут отображаться в новой строке (по умолчанию).
➜ ~ find . -name "test*" -print
./test.txt
./autojump/tests
./test.1
Просмотрите файлы, начинающиеся с test., в текущем каталоге, и результаты вывода не будут отображаться в новой строке
➜ ~ find . -name "test*" -print0
./test.txt./autojump/tests./test.1
Выполнить соответствующую команду на найденном содержимом
Действие выполнения по умолчанию: -print
Общие действия:
-exec 这个参数后可以跟自定义shell命令
работать:
Запрашивайте файлы, оканчивающиеся на .txt, и запрашивайте их дополнительные свойства с помощью ls
➜ test find . -name "*.txt" -exec ls -l {} \;
-rw-r--r-- 1 root root 0 11月 4 14:56 ./xq1.txt
-rw-r--r-- 1 root root 0 11月 4 14:56 ./xq.txt
-rw-r--r-- 1 root root 0 11月 4 14:56 ./xq2.txt
Запрашивать файлы, заканчивающиеся на .txt, и превращать их в файлы, заканчивающиеся на .bak
➜ test find . -name "*.txt" -exec mv {} {}.bak \;
➜ test ls
xq1.txt.bak xq2.txt.bak xq.txt.bak
Логический запрос:
-a 并且
-o 或者
+ 高于
- 低于
работать: Ищите файлы, оканчивающиеся на .sh или .q.
➜ test find . -name "*.sh" -o -name "*.q"
./book.q
./stop.sh
./start.sh
Ищите файлы, которые заканчиваются на .sh и начинаются на s.
➜ test find . -name "*.sh" -a -name "s*"
./stop.sh
./start.sh
Просмотр после вставки содержимого в файл.
➜ test ll
总用量 12K
-rw-r--r-- 1 root root 9 11月 4 15:10 book.q
-rw-r--r-- 1 root root 13 11月 4 15:10 start.sh
-rw-r--r-- 1 root root 4 11月 4 15:10 stop.sh
-rw-r--r-- 1 root root 0 11月 4 14:56 xq1.txt.bak
-rw-r--r-- 1 root root 0 11月 4 14:56 xq2.txt.bak
-rw-r--r-- 1 root root 0 11月 4 14:56 xq.txt.bak
Просмотр файлов /etc больше 40k и меньше 50k
➜ test find /etc/ -size +40k -a -size -50k
/etc/selinux/targeted/active/modules/100/sysadm/hll
/etc/selinux/targeted/contexts/files/file_contexts.homedirs.bin
Запланированные задачи
Когда дело доходит до планирования, на ум приходит время, когда дело доходит до задач, на ум приходит то, что делать. Это что делать, когда. Во сколько вы ходите на работу и во сколько уходите с работы каждый день. Каждый год Национальный день и Новый год отмечаются в фиксированный момент времени. Подобно этим, мы можем назвать их временными задачами.
Например, иногда. Уже почти пора уходить с работы, у лидера срочное задание, Сяо Ван, работа сверхурочно. Завтра у меня хорошее настроение, возьму выходной для интервью. Это временная задача.
Так как же нам сделать эти две вещи в Linux?
тип задачи
Время: выполнение чего-либо неоднократно и непрерывно в течение определенного периода времени.
Временная: задача завершается после одного выполнения, только один раз.
Команда, соответствующая типу задачи
crontab (задание на время): Цикл удушья в соответствии с указанным периодом.
at (временная задача): задача, которая завершается после выполнения.
использование в
Команда: в
Синтаксис: во время
Общие параметры:
-l 查看任务列表
-c 查看任务详情
работать: Проверьте, включена ли служба
[root@iz2ze0ajic0vbv28hcdctpz ~]# systemctl status atd
● atd.service - Job spooling tools
Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
Active: active (running) since 二 2018-11-13 11:50:47 CST; 1 day 9h ago
Main PID: 491 (atd)
CGroup: /system.slice/atd.service
└─491 /usr/sbin/atd -f
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz systemd[1]: Started Job spooling tools.
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz systemd[1]: Starting Job spooling tools...
Несколько способов постановки задач: Создать задачу (по умолчанию сегодня, если время больше текущего, она будет создана на следующий день)
[root@iz2ze0ajic0vbv28hcdctpz ~]# ls
soft
[root@iz2ze0ajic0vbv28hcdctpz ~]# at 21:17
at> mkdir sk
at> <EOT>
job 6 at Wed Nov 14 21:17:00 2018
Создано в указанное время:
[root@iz2ze0ajic0vbv28hcdctpz ~]# at 20:00 2018-11-19
at> mkdir happy
at> <EOT>
job 7 at Mon Nov 19 20:00:00 2018
Добавить время с этого момента:
[root@iz2ze0ajic0vbv28hcdctpz ~]# at now + 3min
at> mkdir hello
at> <EOT>
job 8 at Wed Nov 14 21:41:00 2018
Выполнить завтра в 11:11
[root@iz2ze0ajic0vbv28hcdctpz ~]# at 11:11 tomorrow
at> mkdir world
at> <EOT>
job 9 at Thu Nov 15 11:11:00 2018
Казнен в 15:24 через 2 дня.
[root@iz2ze0ajic0vbv28hcdctpz ~]# at 3:24 pm +2 days
at> mkdir new
at> <EOT>
job 11 at Fri Nov 16 15:24:00 2018
Просмотр списка задач (отображение невыполненных задач)
[root@iz2ze0ajic0vbv28hcdctpz ~]# atq
5 Thu Nov 15 21:11:00 2018 a root
Просмотр информации об одной задаче: (удалить часть информации из-за большего содержания)
[root@iz2ze0ajic0vbv28hcdctpz /]# at -c 7
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0
umask 22
XDG_SESSION_ID=243; export XDG_SESSION_ID
HOSTNAME=iz2ze0ajic0vbv28hcdctpz; export HOSTNAME
SHELL=/bin/bash; export SHELL
HISTSIZE=1000; export HISTSIZE
SSH_CLIENT=113.46.167.195\ 17211\ 22; export SSH_CLIENT
SSH_TTY=/dev/pts/0; export SSH_TTY
USER=root; export USER
MAVEN_HOME=/usr/local/apache-maven-3.6.0; export MAVEN_HOME
MAIL=/var/spool/mail/root; export MAIL
PATH=/usr/local/apache-maven-3.6.0/bin:/usr/local/jdk1.8.0_191/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin; export PATH
PWD=/root; export PWD
JAVA_HOME=/usr/local/jdk1.8.0_191; export JAVA_HOME
LANG=zh_CN.UTF-8; export LANG
HISTCONTROL=ignoredups; export HISTCONTROL
SHLVL=1; export SHLVL
HOME=/root; export HOME
LOGNAME=root; export LOGNAME
CLASSPATH=.:/lib/dt.jar:/lib/tools.jar; export CLASSPATH
SSH_CONNECTION=113.46.167.195\ 17211\ 172.17.187.244\ 22; export SSH_CONNECTION
LC_CTYPE=zh_CN.UTF-8; export LC_CTYPE
LESSOPEN=\|\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN
XDG_RUNTIME_DIR=/run/user/0; export XDG_RUNTIME_DIR
cd /root || {
echo 'Execution directory inaccessible' >&2
exit 1
}
${SHELL:-/bin/sh} << 'marcinDELIMITER550b4fbb'
mkdir happy
marcinDELIMITER550b4fbb
Объяснение параметра:
5 : номер задачи
Чт ноя 15 21:11:00 2018 : Время
очередь
root : исполняющий пользователь
Удалить задачи:
Посмотрим, какие задачи
[root@iz2ze0ajic0vbv28hcdctpz /]# atq
7 Mon Nov 19 20:00:00 2018 a root
5 Thu Nov 15 21:11:00 2018 a root
11 Fri Nov 16 15:24:00 2018 a root
9 Thu Nov 15 11:11:00 2018 a root
12 Wed Nov 14 22:11:00 2018 a root
Удалить задачу с номером задачи 12
[root@iz2ze0ajic0vbv28hcdctpz /]# atrm 12
[root@iz2ze0ajic0vbv28hcdctpz /]# atq
7 Mon Nov 19 20:00:00 2018 a root
5 Thu Nov 15 21:11:00 2018 a root
11 Fri Nov 16 15:24:00 2018 a root
9 Thu Nov 15 11:11:00 2018 a root
Обработка запланированных задач
Cron — это инструмент для выполнения задач по времени в Linux, crondtab — это команда периодического выполнения, а crond — это демон для выполнения задач по времени.
запуск службы
查看服务是否启动
[root@iz2ze0ajic0vbv28hcdctpz ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 二 2018-11-13 11:50:47 CST; 1 day 10h ago
Main PID: 489 (crond)
CGroup: /system.slice/crond.service
└─489 /usr/sbin/crond -n
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz systemd[1]: Started Command Scheduler.
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz systemd[1]: Starting Command Scheduler...
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz crond[489]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 7...ed.)
11月 13 11:50:47 iz2ze0ajic0vbv28hcdctpz crond[489]: (CRON) INFO (running with inotify support)
Hint: Some lines were ellipsized, use -l to show in full.
如果没有启动,执行
systemctl start crond
systemctl enable crond
команда кронтаб
Синтаксис: параметр crontab
Общие параметры:
crontab -u #指定用户的cron信息
crontab -l #列出当前用户下的cron服务的信息
crontab -u user -l #列出指定用户的cron服务的信息
crontab -r #删除cron服务
crontab -e #编辑cron服务
crontab -r -u user #删除指定用户的定时任务
работать:
отредактировать службу cron
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -e
crontab: installing new crontab
Просмотр содержимого задачи текущего пользователя
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -l
22 22 22 * * mkdir /linux/test
удалить задачу
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -r
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -l
no crontab for root
Просмотр содержания задачи пользователя qa
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -u qa -l
22 22 22 * * mkdir /linux/test
Удалить запланированное задание под пользователем qa
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -u qa -r
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -u qa -l
no crontab for qa
Системные задачи
Файл конфигурации планирования задач системы находится в папке /etc/crontab.
[root@iz2ze0ajic0vbv28hcdctpz ~]# ll /etc/crontab
-rw-r--r-- 1 root root 451 Nov 15 07:49 /etc/crontab
Вы можете добавлять системные задачи прямо в /etc/crontab (не рекомендуется)
[root@iz2ze0ajic0vbv28hcdctpz ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
Каталог, связанный с запланированными задачами
[root@iz2ze0ajic0vbv28hcdctpz etc]# ll cr
cron.d/ cron.deny cron.monthly/ cron.weekly/
cron.daily/ cron.hourly/ crontab crypttab
Объяснение роли каталога:
cron.d/ 是系统自动定期需要做的任务(不是按照时,分,秒等时间周期执行的)
cron.deny 在该文件内的用户无法做计划任务
其他文件为不同周期的执行脚本。
Правила запланированных задач
Сначала посмотрите на формат задачи (как показано на рисунке):
Некоторые специальные символы времени:
Вот некоторые примеры:
#每晚的20:30重加载nginx
30 20 * * * /usr/local/nginx/sbin/nginx -s reload
#每月1、10、15日的5:30重加载nginx
30 5 1,10,15 * * /usr/local/nginx/sbin/nginx -s reload
#每天20: 00至22 : 00之间每隔30分钟重加载nginx
0,30 20-22 * * * /usr/local/nginx/sbin/nginx -s reload
每星期六的10 : 00 pm 重加载nginx
0 22* * 6 /usr/local/nginx/sbin/nginx -s reload
#每一小时重加载一次nginx
0 */1 * * * /usr/local/nginx/sbin/nginx -s reload
expect
Много раз наше взаимодействие с linux требует ручного вмешательства. Иногда нам может понадобиться инструмент, который может взаимодействовать с linux без ручного вмешательства. Здесь мы вводим ожидаемый инструмент. В этом резюме мы в основном говорим о том, как использовать ожидание.
Введение ожидать
TCL (язык команд инструментов) — это язык, похожий на скрипт оболочки, вы можете использовать его для выполнения многих операций, expect разработан на его основе, expect также предоставляет некоторые команды, которых нет в tcl. Если вы хотите написать сценарий, который автоматически обрабатывает ввод и вывод, я рекомендую выбрать expect.
установить ожидать
yum install -y expect
ожидать использования
1.定义脚本执行使用的shell。
#!/usr/bin/expect
2.设置超时时间,单位为秒,timeout -1 为永不超时。
set timeout 2
3.壳子
spawn需要在expect环境下运行,用来传递交互指令。
4.expect命令
判断输出结果是否包含某字符串,没有立即返回,否则就等一段时间后返回,用timeout设置等待时间。
5.send
执行交互动作,将交互要执行的动作进行输入给交互指令。命令字符串结尾要加上"\r",如果出现异常等待的状态可以进行核查。
6.exp_continue
继续执行接下来的交互操作。
7.interact
执行后保持交互状态,把控制权交给控制台,如不加interact,交互完成会自动退出。
Вход на сервер по ssh без пароля
Сценарий действия
➜ batch cat sf
#!/usr/bin/expect -f
spawn ssh root@ip
expect {
"yes/no" { send "yes\r";exp_continue}
"*password:" { send "passwordstr\r" }
}
interact
Выполнить для просмотра результатов, вход выполнен успешно
➜ batch ./35
spawn ssh root@ip
root@ip's password:
Last login: Sat Jan 5 10:15:56 2019 from 113.46.187.213
Welcome to Alibaba Cloud Elastic Compute Service !
❝Это только верхушка льда Linux, редактор все еще в пути и будет продолжать обновляться. . . ⛽️
❞
В этой статье используетсяmdniceнабор текста