基于时间访问 Samba 服务器

基于时间访问 Samba 服务器

我有一台运行 samba 的 14.04 服务器。我想建立一些基于时间的服务器访问。我为整个房子托管媒体,目标是让孩子们的电视在某个时间变得无用。我已将以下内容放入 root 中crontab

  0 22 *    *   0-4   /etc/init.d/samba stop 
  0 22 *    *   0-4   /etc/init.d/smbd stop 
  0 22 *    *   0-4   /etc/init.d/nmbd stop 

股票在指定的时间内继续活跃。我做错了什么?

答案1

您的命令不起作用,因为/etc/init.d/smbd/etc/init.d/nmbd在开头包含以下内容:

if init_is_upstart; then
                        exit 1
                fi

因此,由于initubuntu 中的 现在是 Upstart(/etc/init.d/来自 SysV),您需要从目录运行启动-停止脚本/etc/init//etc/init.d/仍然存在以实现向后兼容,因为许多程序仍然使用此目录。

为了让您更轻松,Ubuntu 有service命令:

sudo service smbd stop
sudo service nmbd stop

运行时root

service smbd stop
service nmbd stop

service将首先在/etc/init/目录中搜索,然后/etc/init.d/.service从另一个意义上讲也是有效的,如果这两个目录中有两个同名的脚本(如 和 的情况smbdnmbd,则 Upstart 脚本(在 中/etc/init/)将优先于 SysV 脚本(在 中/etc/init.d/)。

您的输入也cron可以变得更简单:

0 22 * * 0-4  service samba stop && service smbd stop && service nmbd stop

&&确保仅当前一个命令成功(即退出代码$?=0)时才运行下一个命令。

相关内容