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。
评论区