Ubuntu 命令 ln -fs

jap*_*owf 2 ruby bash shell ubuntu nginx

在安装 monit 后的 mina-deploy 脚本上,该脚本创建一个与受监控服务(如 nginx 等)的链接。

但在完成安装之前显示此错误,有人知道是什么

ln -fs

shell上的命令?

-----> 设置Monit... -----> 将monit/nginx.erb 文件放到/shared/config/monit/nginx bash: line 82: /shared/config/monit/nginx: Is a目录 $ sudo ln -fs "/shared/config/monit/nginx" "/" -----> 失败

脚本的其余部分

namespace :monit do

  desc "Install Monit"
  task :install do
    invoke :sudo
    queue %{echo "-----> Installing Monit..."}
    queue "sudo apt-get -y install monit"
  end

  desc "Setup all Monit configuration"
  task :setup do
    invoke :sudo
    if monitored.any?
      queue %{echo "-----> Setting up Monit..."}
      monitored.each do |daemon|
        invoke :"monit:#{daemon}"
      end
      invoke :'monit:syntax'
      invoke :'monit:restart'
    else
      queue %{echo "-----> Skiping monit - nothing is set for monitoring..."}
    end
  end


  task(:nginx) { monit_config "nginx" }
  task(:postgresql) { monit_config "postgresql" }
  task(:redis) { monit_config "redis" }
  task(:memcached) { monit_config "memcached" }
  task(:private_pub) { monit_config "private_pub", "#{private_pub_name}" }

  %w[start stop restart syntax reload].each do |command|
    desc "Run Monit #{command} script"
    task command do
      invoke :sudo
      queue %{echo "-----> Monit #{command}"}
      queue "sudo service monit #{command}"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

pbu*_*uck 6

手册页ln将是一个好的开始。

ln -fs [TARGET] [DIRECTORY]
Run Code Online (Sandbox Code Playgroud)

在文件之间建立符号链接。-f将“强制”更新链接(如果已存在)。

鉴于您的错误消息中的措辞,我猜/shared/config/monit/nginx不存在,这就是ln命令失败的原因。