小编AfD*_*Dev的帖子

尝试创建两个目录的符号链接时,Chef链接错误

我似乎无法让厨师在两个目录之间创建一个符号链接.我想在两个不同的目录之间创建一个符号链接.(/var/log/nginx/data/logs/nginx).

directory node[:nginx][:log_dir] do
  owner 'root'
  mode 00777
  action :create
 end

directory node[:nginx][:integration][:log_dir] do
  owner 'root'
  mode 00777
  action :create
end

link node[:nginx][:integration][:log_dir] do
  to node[:nginx][:log_dir]
end
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Errno::EISDIR
Is a directory - var/log/nginx

link("var/log/nginx") do
  provider Chef::Provider::Link
  action :create
  retries 0
  retry_delay 2
  guard_interpreter :default
  to "/data/logs/nginx/"
  link_type :symbolic
  target_file "var/log/nginx"
  cookbook_name :nginx_integration
  recipe_name "default"
end
Run Code Online (Sandbox Code Playgroud)

symlink chef-infra

3
推荐指数
1
解决办法
4500
查看次数

一般是泡沫红宝石

给定以下变量divisor_array,low,high定义一个方法

  1. 打印从低到高的所有数字
  2. 如果正在打印的任何数字可被任何除数数除除divisor_array,则打印数字+"fizzy"
  3. 如果打印的数字可被数组中的所有数字整除,则应输出数字+"reallyfizzy".

测试值: generally_fizzy([2,3],1,7)

我最初的解决方案

def generally_fizzy(divisor_array, low, high)
    divisors = Hash[*divisor_array]
    low.upto(high) do |i|
        divisors.each_pair do |k,v|
            if((i % k == 0) && (i % v == 0))
                puts "#{i} reallyfizzy"
            elsif ((i % k == 0) || (i % v == 0))
                puts "#{i} fizzy" 
            else
                puts i 
            end          
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

这个解决方案通过了给定的测试,但是当divisor_array大小从2个值增加到3个以上时,它会打印出重复的内容.除此之外,代码不是很优雅.

寻找可以处理divisor_array尺寸变化的工作替代方案.

ruby algorithm fizzbuzz

1
推荐指数
1
解决办法
187
查看次数

标签 统计

algorithm ×1

chef-infra ×1

fizzbuzz ×1

ruby ×1

symlink ×1