Ruby (от направляющих) хостинг

Большие ползунки для robocopy. Я использую его для того, чтобы сделать вид вещей, которые Вы упоминаете.

, Например, я в настоящее время выполняю 5 robocopy сессий на своем сервере, где я копирую приблизительно 60 ГБ файлов между 3 удаленными серверами, я подключен с два через CheckPoint VPN, и другой пространство Amazon S3, отображенное через JungleDisk.

я работаю с коллегой в другом конце страны. Он войдет в систему тех же серверов позже сегодня вечером и выполнит подобный набор robocopy пакетных файлов для загрузки всех изменений, которые я в настоящее время загружаю.

функция 'приложения-приманки' - то, что robocopy сохранит метки даты и времени файла и, по умолчанию ТОЛЬКО скопирует файлы, которые отличаются. Таким образом, можно указать на него на огромное дерево dir, и только измененные файлы будут скопированы.

Вот некоторые полезные подсказки для того, чтобы сделать этот вид вещи...

/MIR зеркала дерево dir так удалит, а также добавит

/R:10, говорит robocopy пытаться 10 раз скопировать файл перед отказом. Значение по умолчанию 1,000,000 раз

/LOG+somefilename.log, добавит экранный вывод к somefilename.log, создавая его при необходимости.

/XD dir1 dir2 проигнорирует названный dir1 любых директоров или dir2 в копии. Подстановочные знаки могут использоваться.

/FFT будет использовать метки времени FAT, которые менее точны, чем NTFS (использует гранулярность 2 секунд в метках времени). Я также нахожу этого полезным при копировании между файловыми системами Linux и NTFS.

я обычно использую что-то как [1 116]

robocopy d:\workdir y:\workdir /TEE /LOG+:d:\update.log /MIR /R:5

, который зеркально отразит (/MIR) d:\workdir с y:\workdir, добавить журнал того, что это делает к d:\update.log (/LOG+d:\update.log) записи вывода и к консоли и к файлу журнала (/МИШЕНЬ), и пробует каждый файл 5 времена перед хождением дальше к следующему.

Это также работает с путями UNC.

, Если у Вас есть большое количество файлов, которым нужна синхронизация по многим ПК тогда, robocopy является Вашим другом.

6
задан LoveMeSomeCode 23 November 2009 в 18:50
поделиться

2 ответа

First, if you want lightweight, Sinatra is usually my first pick. Pair it up with rack and Passenger for best results. It's not CGI, but realistically speaking, CGI is rarely a good match-up with Ruby.

Here's the "Hello World!" Sinatra app from the main page:

require 'rubygems'
require 'sinatra'
get '/hi' do
  "Hello World!"
end

Hard to get more lightweight than that.

As for providers, anybody that supports Passenger (mod_rack) should be able to handle Sinatra. I'm a big fan of Slicehost personally, but they're a VPS host, which means you need to be able to install and manage the entire stack yourself. If you don't mind paying a tiny bit extra for the infrastructure, Heroku makes installation and deployment dead simple, so long as your needs don't exceed what they provide (sounds like they won't). In the unlikely event that you're only using 5MB or if you're using an external storage mechanism like Amazon RDS, Heroku may actually be free for you.

Update:

  • Passenger is an Apache module that allows Rack applications to be run inside of Apache.
  • Rack is a middleware layer that separates the web server and the web framework from each other. This allows web frameworks to run on any web server for which there is an adapter.
  • Sinatra is a lightweight web framework that runs on top of Rack.

Once Passenger and Rack are installed (gem install rack, gem install passenger) you just need to edit the Apache vhost to point at the config.ru file for your Sinatra app and create the required directories as per the Passenger docs and you'll be good to go.

9
ответ дан 10 December 2019 в 02:49
поделиться

I think you might want to look into Rack. It allows you to do the kinds of things you're talking about and shrugs off the weight of frameworks like Rails or Merb. Rack applications can be hosted at a place like Heroku.

0
ответ дан 10 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: