Ansible常用模块

Ansible常用模块

准备环境

设备IP 地址名称安装
redhat8192.168.91.128控制端localhostansible 2.9 .23
redhat8192.168.91.129被控端node1yum

常用模块使用方法最新查询地址

1. ansible常用模块使用详解

ansible常用模块有:

  • ping
  • yum
  • template
  • copy
  • user
  • group
  • service
  • raw
  • command
  • shell
  • script

ansible常用模块rawcommandshell的区别:

  • shell模块调用的/bin/sh指令执行
  • command模块不是调用的shell的指令,所以没有bash的环境变量
  • raw很多地方和shell类似,更多的地方建议使用shell和command模块。但是如果是使用老版本python,需要用到raw,又或者是客户端是路由器,因为没有安装python模块,那就需要使用raw模块了

2. ansible常用模块之ping

ping模块用于检查指定节点机器是否连通,用法很简单,不涉及参数,主机如果在线,则回复pong

/ / 来到指定ansible的目录下查看文件信息
[root@localhost project]# cat inventories 
[webservers]
192.168.91.129 

/ / 因为之前设置过免密,所以可以直接ping通(没有免密,需要后面跟账号密码)
[root@localhost project]# ansible all -m ping
192.168.91.129 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}

3. ansible常用模块之command

command模块用于在远程主机上执行命令,ansible默认就是使用command模块。
command模块有一个缺陷就是不能使用管道符和重定向功能。

不支持重定向符示例:
/ / 虽然使用command在node1的tom用户/tmp/目录下创建abc文件执行成功了
[root@localhost project]# ansible all -m command -a 'echo "hello word" > /tmp/abc'
192.168.91.129 | CHANGED | rc=0 >>
hello word > /tmp/abc
[root@node1 ~]# id tom
uid=1000(tom) gid=1000(tom) groups=1000(tom)
[root@node1 ~]# su - tom
Last login: Thu Jul 15 16:31:10 CST 2021 on pts/1

/ / 但是tom用户下并没有这个文件。就是因为commanbd模块不支持重定向符
[tom@node1 ~]$ cd /tmp/
[tom@node1 tmp]$ ls
ks-script-us_ovm41
vmware-root_1023-4248090784
vmware-root_1043-4257200433
vmware-root_1044-2991203048
vmware-root_1053-4290756408
vmware-root_1060-2957649088
vmware-root_981-4290756372

不支持管道符示例:
/ / 1.再看这边直接使用command进行环境变量查看路径没有问题
[root@localhost project]# ansible all -m command -a 'echo $PATH'
192.168.91.129 | CHANGED | rc=0 >>
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

/ / 但是当你使用管道符将其过滤时,发现并没有过滤你需要的信息,而是把你输入的命令直接输出出来
[root@localhost project]# ansible all -m command -a 'echo $PATH | grep sbin'
192.168.91.129 | CHANGED | rc=0 >>
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin | grep sbin

/ / 2.这边直接报错,不支持管道符。这两个例子都很明显说明command不支持管道符
[root@localhost project]# ansible all -m command -a "df -h|awk '{print $4}'"
192.168.91.129 | FAILED | rc=1 >>
df: invalid option -- '|'
Try 'df --help' for more information.non-zero return code

/ / 没有bash环境变量,set这种需要bash环境变量的命令也是无法使用的
[root@localhost project]# ansible all -m command -a 'set'
192.168.91.129 | FAILED | rc=2 >>
[Errno 2] No such file or directory: b'set': b'set'

4. ansible常用模块之shell

shell模块用于在受控机上执行受控机上的脚本,亦可直接在受控机上执行命令
shell模块用于在远程主机上执行命令,其支持管道符与重定向

shell模块可以查看set命令
[root@localhost project]# ansible all -m shell -a 'set'
192.168.91.129 | CHANGED | rc=0 >>
BASH=/bin/sh
BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()

支持管道符示例:
1.使用shell模块把信息写入到/tmp/abc文件中使用成功
[root@localhost project]# ansible all -m shell -a 'df -h > /tmp/abc'
192.168.91.129 | CHANGED | rc=0 >>
[root@node1 ~]# su - tom
Last login: Sat Jul 17 17:20:00 CST 2021 on pts/0
[tom@node1 ~]$ cd /tmp/

/ / 查看发现abc文件创建成功,信息也有
[tom@node1 tmp]$ ls
abc
ks-script-us_ovm41
vmware-root_1023-4248090784
vmware-root_1043-4257200433
vmware-root_1044-2991203048
vmware-root_1053-4290756408
vmware-root_1060-2957649088
vmware-root_981-4290756372
[tom@node1 tmp]$ cat abc
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               1.6G     0  1.6G   0% /dev
tmpfs                  1.6G     0  1.6G   0% /dev/shm
tmpfs                  1.6G  8.9M  1.6G   1% /run
tmpfs                  1.6G     0  1.6G   0% /sys/fs/cgroup
/dev/mapper/rhel-root   17G  1.5G   16G   9% /
/dev/sda1             1014M  179M  836M  18% /boot
tmpfs                  324M     0  324M   0% /run/user/0

2.把脚本写入到test.log
/ / 创建一个脚本并执行
[root@node1 ~]# vi test.sh
[root@node1 ~]# chmod +x test.sh
[root@node1 ~]# ll
total 8
-rw-------. 1 root root 1184 Jul 13 09:38 anaconda-ks.cfg
-rwxr-xr-x. 1 root root   25 Jul 17 19:54 test.sh

/ / 写入到/tmp/test.sh文件下
[root@localhost project]# ansible all -m shell -a '/bin/bash /root/test.sh &> /tmp/test.log'
192.168.91.129 | CHANGED | rc=0 >>

/ / 查看test.sh文件和脚本
[root@localhost project]# ansible all -m shell -a 'cat /tmp/test.log'
192.168.91.129 | CHANGED | rc=0 >>
hehe

[root@node1 ~]# /bin/bash /root/test.sh
hehe

/ / shell可以使用管道符
[root@localhost project]# ansible all -m shell -a 'ps -ef | grep sshd'
192.168.91.129 | CHANGED | rc=0 >>
root        1143       1  0 19:43 ?        00:00:00 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@op

5. ansible常用模块之raw

raw模块用于在远程主机上执行命令,其也支持管道符与重定向

/ / raw也是支持set命令
[root@localhost project]# ansible all -m raw -a 'set'
192.168.91.129 | CHANGED | rc=0 >>
BASH=/usr/bin/bash
BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASHRCSOURCED=Y
BASH_ALIASES=()

/ / raw当然也是支持重定向符的
[root@localhost project]# ansible all -m raw  -a 'df -h > /tmp/abd'
192.168.91.129 | CHANGED | rc=0 >>
Shared connection to 192.168.91.129 closed.
[tom@node1 tmp]$ ls
abc
abd
ks-script-us_ovm41
vmware-root_1023-4248090784
vmware-root_1043-4257200433
vmware-root_1044-2991203048
vmware-root_1053-4290756408
vmware-root_1060-2957649088
vmware-root_981-4290756372
[tom@node1 tmp]$ cat abd
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               1.6G     0  1.6G   0% /dev
tmpfs                  1.6G     0  1.6G   0% /dev/shm
tmpfs                  1.6G  8.9M  1.6G   1% /run
tmpfs                  1.6G     0  1.6G   0% /sys/fs/cgroup
/dev/mapper/rhel-root   17G  1.5G   16G   9% /
/dev/sda1             1014M  179M  836M  18% /boot
tmpfs                  324M     0  324M   0% /run/user/0

/ / raw可以使用管道符
[root@localhost project]# ansible all -m raw -a 'ss -ant|grep ESTAB'
192.168.91.129 | CHANGED | rc=0 >>
ESTAB    0        0            192.168.91.129:22           192.168.91.1:51361   
ESTAB    0        108          192.168.91.129:22         192.168.91.128:44660   
Shared connection to 192.168.91.129 closed.

注意:这三个模块都是万能模块,不到万不得已不使用这些,因为它们没有幂等性。比如你去ping的时候是SUCCESS显示你执行成功。三面三个模块执行成功报的CHANGED,它们会去改变,不管你之前是否存在。当shell或command模块运行时,通常会基于它是否引想了计算机的状态而报告CHANGED状态

如果需要使用它们的时候,可能最好先尝试使用command模块,因为它使用python进行交互的,它无法执行,在需要使用特殊功能的时候我们再去使用shell和raw模块。

[root@localhost project]# ansible all -m ping
192.168.91.129 | SUCCESS => {

[root@localhost project]# ansible all -m raw -a 'set'
192.168.91.129 | CHANGED | rc=0 >>

[root@localhost project]# ansible all -m raw  -a 'df -h > /tmp/abd | grep Filesystem'
192.168.91.129 | FAILED | rc=1 >>

6. ansible常用模块之script

script模块用于在受控机上执行主控机上的脚本

/ / 创建一个目录scripts,在里面写入一个test.sh脚本
[root@node1 ~]# id ttm
id: ‘ttm’: no such user

[root@localhost project]# mkdir /scripts
[root@localhost project]# cd /scripts/
[root@localhost scripts]# ls
[root@localhost scripts]# vim test.sh

/ / 创建一个ttm用户,密码设置为“redhat”,并把“hell oworld”写入到家目录的/ttm/abc文件下
[root@localhost scripts]# cat test.sh 
#!/bin/bash

useradd ttm
echo "redhat" | passwd --stdin ttm
echo "hello world" > ~ttm/abc
[root@localhost scripts]# cd -
/opt/project

/ / 直接执行会报错,因为没有给他设置执行权限
[root@localhost project]# ansible all -m script -a '/bin/bash /scripts/test.sh'
192.168.91.129 | FAILED! => {
    "changed": true,
    "msg": "non-zero return code",

/ / 给它写入执行权限
[root@localhost project]# ll /scripts/
total 4
-rw-r--r--. 1 root root 90 Jul 17 20:05 test.sh
[root@localhost project]# chmod +x /scripts/test.sh 
[root@localhost project]# ll /scripts/
total 4
-rwxr-xr-x. 1 root root 90 Jul 17 20:05 test.sh

/ / 重新执行并成功
[root@localhost project]# ansible all -m script -a '/scripts/test.sh' 
192.168.91.129 | CHANGED => {
    "changed": true,
    "rc": 0,
    "stderr": "Shared connection to 192.168.91.129 closed.\r\n",
    "stderr_lines": [
        "Shared connection to 192.168.91.129 closed."
    ],
    "stdout": "Changing password for user ttm.\r\npasswd: all authentication tokens updated successfully.\r\n",
    "stdout_lines": [
        "Changing password for user ttm.",
        "passwd: all authentication tokens updated successfully."
    ]
}

/ / 查看ttm用户是否存在,家目录下是否有abc这个文件
[root@node1 ~]# id ttm
uid=1001(ttm) gid=1001(ttm) groups=1001(ttm)

/ / 退出远程登录,手打输入ip和密码登录,查看密码是否为redhat
[C:\~]$ ssh ttm@192.168.91.129


Connecting to 192.168.91.129:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Sat Jul 17 20:17:11 2021

/ / 登录成功查看其家目录下有没有abc文件
[ttm@node1 ~]$ ls
abc

7. ansible常用模块之template

template模块用于生成一个模板,并可将其传输至远程主机上。(文件传输)
模板:是可以传输变量的

/ / 查看家目录文件
[root@localhost project]# ls ~
1.txt  anaconda-ks.cfg  ara  def     rfg
abc    ansible.cfg      bbd  passwd

/ / 把家目录文件~/anaconda-ks.cfg传到被控机的/tmp/hehe文件下面
[root@localhost project]# ansible all -m template -a 'src=~/anaconda-ks.cfg dest=/tmp/hehe'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "checksum": "07e141f6aed58d6ccec8ecd09f8f3b0945bcd959",
    "dest": "/tmp/hehe",
    "gid": 0,
    "group": "root",
    "md5sum": "52f4578155b507c8fa1ef392f23113fd",
    "mode": "0644",
    "owner": "root",
    "secontext": "unconfined_u:object_r:admin_home_t:s0",
    "size": 1184,
    "src": "/root/.ansible/tmp/ansible-tmp-1626525158.6790378-2194-262408274777561/source",
    "state": "file",
    "uid": 0
}

/ / 主控机与被控机进行信息对比,发现一致,说明传输成功
[root@node1 ~]# ls /tmp/
abc
hehe
[root@node1 ~]# head -3 /tmp/hehe
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
[root@localhost project]# head -3 ~/anaconda-ks.cfg 
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm

8. ansible常用模块之yum

yum模块用于在指定节点机器上通过yum管理软件,其支持的参数主要有两个

  • name:要管理的包名
  • state:要进行的操作

state常用的值:

  • latest:安装软件
  • installed:安装软件
  • present:安装软件
  • removed:卸载软件
  • absent:卸载软件

若想使用yum来管理软件,请确保受控机上的yum源无异常。

/ / 使用installed下载vsftpd安装包
[root@localhost project]# ansible all -m yum -a 'name=vsftpd state=installed'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "msg": "",
    "rc": 0,
    "results": [
        "Installed: vsftpd-3.0.3-31.el8.x86_64"
    ]
}

/ / 查看下载是否成功
[root@localhost project]# ansible all -m shell -a 'rpm -qa|grep vsftpd'
192.168.91.129 | CHANGED | rc=0 >>
vsftpd-3.0.3-31.el8.x86_64

/ / 使用absent删除vsftpd
[root@localhost project]# ansible all -m yum -a 'name=vsftpd state=absent'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "msg": "",
    "rc": 0,
    "results": [
        "Removed: vsftpd-3.0.3-31.el8.x86_64"
    ]
}

/ / 查看vsftpd是否被删除,以及去掉警告(command_warnings=False)
[root@localhost project]# ansible all -m shell -a 'rpm -qa|grep vsftpd'
[WARNING]: Consider using the yum, dnf or zypper module rather than running
'rpm'.  If you need to use command because yum, dnf or zypper is insufficient
you can add 'warn: false' to this command task or set 'command_warnings=False'
in ansible.cfg to get rid of this message.
192.168.91.129 | FAILED | rc=1 >>
non-zero return code
[root@localhost project]# vim ansible.cfg 

/ / 使用present下载安装包
[root@localhost project]# ansible all -m yum -a 'name=vsftpd state=present'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "msg": "",
    "rc": 0,
    "results": [
        "Installed: vsftpd-3.0.3-31.el8.x86_64"
    ]
}

/ / 查看下载是否成功
[root@localhost project]# ansible all -m shell -a 'rpm -qa|grep vsftpd'
192.168.91.129 | CHANGED | rc=0 >>
vsftpd-3.0.3-31.el8.x86_64

/ / 使用removed删除安装包
[root@localhost project]# ansible all -m yum -a 'name=vsftpd state=removed'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "msg": "",
    "rc": 0,
    "results": [
        "Removed: vsftpd-3.0.3-31.el8.x86_64"
    ]
}

/ / 查看删除情况
[root@localhost project]# ansible all -m shell -a 'rpm -qa|grep vsftpd'
192.168.91.129 | FAILED | rc=1 >>
non-zero return code

/ / 使用latest下载安装包
[root@localhost project]# ansible all -m yum -a 'name=vsftpd state=latest'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "msg": "",
    "rc": 0,
    "results": [
        "Installed: vsftpd-3.0.3-31.el8.x86_64"
    ]
}

/ / 查看下载情况
[root@localhost project]# ansible all -m shell -a 'rpm -qa|grep vsftpd'
192.168.91.129 | CHANGED | rc=0 >>
vsftpd-3.0.3-31.el8.x86_64

/ / 删除安装包
[root@localhost project]# ansible all -m yum -a 'name=vsftpd state=absent'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "msg": "",
    "rc": 0,
    "results": [
        "Removed: vsftpd-3.0.3-31.el8.x86_64"
    ]
}

/ / 查看删除情况
[root@localhost project]# ansible all -m shell -a 'rpm -qa|grep vsftpd'
192.168.91.129 | FAILED | rc=1 >>
non-zero return code

9. ansible常用模块之copy

copy模块用于复制文件至远程受控机。

[root@localhost ~]# ls /tmp/
ks-script-us_ovm41
vmware-root_1045-4257069366
vmware-root_1050-2957649121
vmware-root_1060-2957649088

[root@localhost project]# ls
ansible.cfg  hehe  inventories
[root@localhost project]# pwd
/opt/project

/ / 将inventories文件信息复制到受控主机的/tmp/inventories里面
[root@localhost project]# ansible all -m copy -a 'src=/opt/project/inventories dest=/tmp/inventories'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "checksum": "5dbc4f8cfe91de3d6567df21884c5d08148d8969",
    "dest": "/tmp/inventories",
    "gid": 0,
    "group": "root",
    "md5sum": "e166a18598e71a9571376f590a6e8832",
    "mode": "0644",
    "owner": "root",
    "secontext": "unconfined_u:object_r:admin_home_t:s0",
    "size": 29,
    "src": "/root/.ansible/tmp/ansible-tmp-1626527874.179876-2868-198840126432948/source",
    "state": "file",
    "uid": 0
}

/ / 查看主机里面inventories文件信息
[root@localhost project]# cat inventories 
[webservers]
192.168.91.129 

/ / 查看被控机的inventories创建成功没有
[root@node1 ~]# cd /tmp/
[root@node1 tmp]# ls
inventories
ks-script-us_ovm41
vmware-root_1045-4257069366
vmware-root_1050-2957649121
vmware-root_1060-2957649088

/ / 查看其复制信息是否与主机信息一致
[root@node1 ~]# cat /tmp/inventories 
[webservers]
192.168.91.129 

10. ansible常用模块之group

group模块用于在受控机上添加或删除组。

/ / 在被控机里创建runtime用户组,gid设置为5000
[root@localhost project]# ansible all -m group -a 'name=runtime state=present gid=5000'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "gid": 5000,
    "name": "runtime",
    "state": "present",
    "system": false
}

/ / 查看被控机创建结果
[root@node1 ~]# grep runtime /etc/group
runtime:x:5000:

/ / 删除被控机的runtime用户组
[root@localhost project]# ansible all -m group -a 'name=runtime state=absent gid=5000'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "name": "runtime",
    "state": "absent"
}

/ / 删除成功
[root@node1 ~]# grep runtime /etc/group
[root@node1 ~]# 

11. ansible常用模块之user

user模块用于管理受控机的用户帐号。

/ / 在被控机里创建普通用户test,设置uid为1020
[root@localhost project]# ansible all -m user -a 'name=test uid=1020 state=present'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "comment": "",
    "create_home": true,
    "group": 1020,
    "home": "/home/test",
    "name": "test",
    "shell": "/bin/bash",
    "state": "present",
    "system": false,
    "uid": 1020
}

/ / 查看被控机test是否创建成功
[root@node1 ~]# id test
uid=1020(test) gid=1020(test) groups=1020(test)

/ / 在被控机中删除test用户
[root@localhost project]# ansible all -m user -a 'name=test uid=1020 state=absent'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "force": false,
    "name": "test",
    "remove": false,
    "state": "absent"
}
 
/ / 查看被控机删除情况
[root@node1 ~]# id test
id: ‘test’: no such user

12. ansible常用模块之service

service模块用于管理受控机上的服务。

/ / 在被控机上面下载vsfpd包
[root@localhost project]# ansible all -m yum -a 'name=vsftpd state=present'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "msg": "",
    "rc": 0,
    "results": [
        "Installed: vsftpd-3.0.3-31.el8.x86_64"
    ]
}

/ / 下载成功
[root@node1 ~]# rpm -qa | grep vsftpd
vsftpd-3.0.3-31.el8.x86_64

/ / 在被控机开启vsftpd服务
[root@localhost project]# ansible all -m service -a 'name=vsftpd state=started'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "name": "vsftpd",
    "state": "started",
    "status": {

/ / 被控机vsftpd服务开启成功
[root@node1 ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disab>
   Active: active (running) since Sun 2021-07-18 21:07:51 CST; 17s ago
  Process: 2681 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0>
 Main PID: 2682 (vsftpd)
    Tasks: 1 (limit: 23789)
   Memory: 556.0K
   CGroup: /system.slice/vsftpd.service
           └─2682 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Jul 18 21:07:51 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
Jul 18 21:07:51 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.

/ / 使被控机vsftpd服务现在关闭,开机自启动
[root@localhost project]# ansible all -m service -a 'name=vsftpd state=stopped enabled=yes'
192.168.91.129 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": true,
    "enabled": true,
    "name": "vsftpd",
    "state": "stopped",
    "status": {

/ / 被控机服务现在已关闭,且开机自启动
[root@node1 ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabl>
   Active: inactive (dead) since Sun 2021-07-18 21:16:03 CST; 8s ago
 Main PID: 2682 (code=killed, signal=TERM)

Jul 18 21:07:51 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
Jul 18 21:07:51 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.
Jul 18 21:16:03 localhost.localdomain systemd[1]: Stopping Vsftpd ftp daemon...
Jul 18 21:16:03 localhost.localdomain systemd[1]: Stopped Vsftpd ftp daemon.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值