91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

自動備份腳本

發布時間:2020-07-22 14:54:30 來源:網絡 閱讀:738 作者:nonono11 欄目:編程語言

自動查找相關文件.上傳到服務器

#!/usr/bin/ruby
# coding: utf-8
require 'date'

$result = []
bak_ser = "bacula@192.168.100.24"
tar_dir = "/tmp/auto_tar_bak"

def check(top_dir, ext_type, exclude, dir_deep)
  content = `ls -1 #{top_dir}`.split
  for i in content
    i = top_dir + "/" + i
    if File.directory?(i)
      next if File.ftype(i) == 'link'
      begin
        next if i.scan('/').length >= dir_deep
      rescue
        next if i.force_encoding('GBK').scan('/').length >= dir_deep
      end
      next if i.match(/#{exclude}/)
      unless Dir.entries(i).include?('.svn')
        begin
          check(i, ext_type, exclude, dir_deep)
        rescue
        end
      end
    elsif File.ftype(i) == 'file'
      begin # maybe no ext name
        unless i.scan(/\.[^\.]+$/)[0].match(/#{ext_type}/i)
          if File.size(i) <= 1024000 && File.size(i) >= 120
            if `file \"#{i}\"`.include?('ASCII') || i.scan(/\.[^\.]+$/)[0].match(/doc|docx|xlsx|xls/i)
              $result << "." + i
            end
          end
        end
      rescue
        #unless i.force_encoding('GBK').scan(/\.[^\.]+$/)[0].match(/bmp|png|pdf|vsd|rar|log|dat|bak/i)
          if File.size(i) <= 1024000 && File.size(i) >= 120
            if `file \"#{i}\"`.include?('ASCII')  #|| i.force_encoding('GBK').scan(/\.[^\.]+$/)[0].match(/doc|docx|xlsx|xls/i)
              $result << "." + i
            end
          end
        #end        
      end
    end
  end
end

def write_file(path,str)
aFile = File.new(path,"w")
    aFile.puts str
aFile.close
end

def delete_dir_line(dir)
  dir[0] == '/' ? dir[1..-1] : dir
end

def import_config(home_name)
  path_in, path_ex, filetype = [], [], []
  config = {:deep => 8, :exclude => path_ex, :filetype => filetype, :include => path_in}
  begin
    File.open("/local_home/#{home_name}/config.txt",'r').each do |line|
      if line.match(/^deep/)
        config[:deep] = line.split('=')[-1].to_i if line.split('=')[-1].to_i + 2 >= 1
      elsif line.match(/^exclude/)
        line.split('=')[-1].split(';').each {|x| path_ex << "/local_home/#{home_name}/" + delete_dir_line(x.chomp) if x.length > 1}
      elsif line.match(/^include/)
        line.split('=')[-1].split(';').each {|x| path_in << "/local_home/#{home_name}/" + delete_dir_line(x.chomp) if x.length > 1}
      elsif line.match(/^filetype/)
        line.split('=')[-1].split(';').each {|x| filetype << x.chomp if x.length > 1}
      end
    end
  rescue
    config = {:deep => 8, :exclude => path_ex, :filetype => filetype, :include => path_in}
  end
  path_ex.each { |x| path_ex.delete(x) if path_in.index(x) }

  return config
end

# get home user
home_user = `grep $(hostname) /etc/auto.nfs | awk -F \'/local_home/\' \'{print $2}\'`.split.join('|')

`rm -rf #{tar_dir}` if File.directory?(tar_dir)

`ls -1 /local_home`.split.each do |list|
  if list.match(/#{home_user}/)
    `mkdir -p #{tar_dir + "/" + list}`
    tar_list_path = "#{tar_dir + "/" + list}/tar.list"
    tar_file_name = "#{tar_dir + "/" + list}/#{DateTime.now.strftime("%Y-%m-%d")}.tar.bz2"

    config = import_config(list)

    if config[:filetype].length > 0
      filetype = config[:filetype].join('|')
    else
      filetype = "bmp|png|pdf|vsd|rar|log|dat|bak"
    end

    if config[:exclude].length > 0
      exclude = config[:exclude].join('|')
    else
      exclude = "Code|RTL|INCA.libs"
    end

    if list.match(/#{home_user}/)
      if config[:include].length > 0
        config[:include].each do |in_path|
          check(in_path, filetype, exclude, config[:deep]) if File.directory?(in_path)
        end
      else
        check("/local_home/" + list, filetype, exclude, config[:deep])
      end
    end

    $result << "." + tar_list_path
    # write tar_list to tmp file
    write_file(tar_list_path,$result)
    # tar file
    `cd / && tar -jc -T #{tar_list_path} -f #{tar_file_name}`
    # scp file
    `scp #{tar_file_name} #{bak_ser + ":/bak/auto_bak/" + list + "/" + File.basename(tar_file_name)}`

    $result = []
  end
  `rm -rf #{tar_dir}` if File.directory?(tar_dir)
end


運行前會加載配置文件 (/local_home/USERNAME/config.txt)

格式如下

include=DIR1;DIR2

exclude=DIR1;DIR2

deep=6

filetype=dat;avi

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉首市| 安新县| 定西市| 安阳市| 弥渡县| 临猗县| 钟山县| 西峡县| 汶上县| 和顺县| 伊宁市| 新安县| 南郑县| 瑞安市| 瑞丽市| 宁波市| 云安县| 青铜峡市| 吉首市| 黄骅市| 渭南市| 方山县| 阳东县| 甘洛县| 金塔县| 鄂尔多斯市| 凉城县| 锦州市| 合川市| 三亚市| 铁岭市| 买车| 石泉县| 辽宁省| 三江| 北川| 庆元县| 锦屏县| 集安市| 宜良县| 乐陵市|