侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux ftpshut命令详解:如何在指定时间关闭FTP服务器(附实例教程和注意事项)

Linux ftpshut命令介绍

ftpshut是一个用来在指定的时间关闭FTP服务器的命令。它的全称是File Transfer Protocol Shutdown,它可以自动断开当前的proftpd连接,并拒绝新的连接。它会在/etc目录下创建一个名为shutmsg的控制文件,来通知proftpd进程即将发生的关闭。它可以设置关闭时间、警告信息、切断连接时间和拒绝登录时间等参数。它是proftpd的一个组件,proftpd是一个高性能的FTP服务器软件,支持多种协议和模块。

Linux ftpshut命令适用的Linux版本

ftpshut命令只适用于运行在独立模式的proftpd服务器。如果proftpd运行在inetd模式,它也会识别ftpshut创建的shutmsg文件,但是可能无法读取它,因为当前运行的服务器可能被chroot (2)限制了。要使用ftpshut命令,你需要先安装proftpd软件包。不同的Linux发行版有不同的安装方法,例如:

  • 在CentOS 7或8上,你可以使用yum或dnf命令安装proftpd,如下:
[linux@bashcommandnotfound.cn ~]$ sudo yum install proftpd
  • 在Ubuntu或Debian上,你可以使用apt命令安装proftpd,如下:
[linux@bashcommandnotfound.cn ~]$ sudo apt install proftpd
  • 在Arch Linux上,你可以使用pacman命令安装proftpd,如下:
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S proftpd

Linux ftpshut命令的基本语法

ftpshut命令的基本语法格式如下:

ftpshut [ -R ] [ -l min ] [ -d min ] time [ warning-message ]

其中,各个参数的含义如下:

  • -R:删除/etc/shutmsg文件,恢复proftpd的正常服务。如果使用这个选项,这将是ftpshut唯一执行的操作。

  • -l min:指定在关闭前多少分钟停止接受新的FTP登录。如果不指定这个选项,默认为10分钟(或者如果距离关闭时间小于10分钟,则立即停止)。

  • -d min:指定在关闭前多少分钟断开现有的FTP连接。如果不指定这个选项,默认为5分钟(或者如果距离关闭时间小于5分钟,则立即断开)。

  • time:指定关闭FTP服务器的时间。可以是now,表示立即关闭,或者是一个未来的时间,有两种格式:+number或HHMM。第一种格式表示在number分钟后关闭,第二种格式表示在某个具体的时间关闭,使用24小时制。

  • warning-message:可选地提供一个消息,将被发送给被拒绝的新连接和被断开的现有连接。消息可以包含一些特殊的占位符,将在发送给连接之前被替换,如下:

    • %s time:proftpd将在这个时间关闭
    • %r time:新连接将在这个时间被拒绝
    • %d time:现有连接将在这个时间被断开
    • %C:当前工作目录(如果适用)
    • %L:本地主机名(或虚拟主机名)
    • %R:远程主机名
    • %T:本地时间(格式为Thu Nov 15 17:12:42 1990)
    • %U:登录时提供的用户名

Linux ftpshut命令的常用选项说明

ftpshut命令的选项不多,只有四个,分别是-R,-l,-d和time。它们的作用和用法已经在上一节介绍过了,这里不再赘述。如果你想了解更多的细节,你可以使用man ftpshut命令查看手册页。

Linux ftpshut命令的实例

ftpshut命令的实例有以下几种:

  • 立即关闭FTP服务器,并给出警告信息,可以使用如下命令:
[linux@bashcommandnotfound.cn ~]$ sudo ftpshut now "Server is shutting down now"
  • 在30分钟后关闭FTP服务器,并在关闭前10分钟停止接受新的FTP登录,前5分钟断开所有FTP连接,且给出警告信息,可以使用如下命令:
[linux@bashcommandnotfound.cn ~]$ sudo ftpshut +30 "Server will be shutdown in 30 minutes"
  • 在每天的11:00关闭FTP服务器,并在关闭前15分钟停止接受新的FTP登录,前10分钟断开所有FTP连接,且给出警告信息,可以使用如下命令:
[linux@bashcommandnotfound.cn ~]$ sudo ftpshut 1100 "Server will be shutdown at 11:00:00"
  • 恢复FTP服务器的正常服务,可以使用如下命令:
[linux@bashcommandnotfound.cn ~]$ sudo ftpshut -R

Linux ftpshut命令的注意事项

使用ftpshut命令时,需要注意以下几点:

  • ftpshut命令需要超级用户权限,所以要使用sudo或者su命令。
  • ftpshut命令只能关闭运行在独立模式的proftpd服务器,如果运行在inetd模式,可能无法正常工作。
  • ftpshut命令会在/etc目录下创建一个名为shutmsg的文件,如果要恢复FTP服务器的服务,需要使用-R选项或者手动删除这个文件。
  • 如果设置一个比当前时间早的关闭时间,proftpd不会立即关闭,而是在第二天的那个时间关闭。
  • 如果没有安装proftpd软件包,使用ftpshut命令会提示bash: ftpshut: command not found,需要先安装proftpd。
0

评论区