Skip to content

Instantly share code, notes, and snippets.

MySQLのデータベースバックアップ

1.バックアップ用スクリプトを作成します。

backup4mysql.sh

# バックアップファイルを何日分残しておくか
period=10

バックアップファイルを保存するディレクトリ

knife初期化

knife configure

recipe作成

$ sudo knife cookbook create xxx -o cookbooks/

solo.rb

デプロイ時に毎回やってること

myappを/var/www/myappに配置し、serviceとして起動させる場合

1.myapp直下でprepare_deploy.shを実行

prepare_deploy.sh

bundle install

bundle exec rake db:migrate RAILS_ENV=production

tmuxをソースからインストール

libevent のインストール

$ wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
$ tar xvzf libevent-2.0.21-stable.tar.gz
$ cd libevent-2.0.21-stable
$ ./configure
$ make

$ make install

メールサーバー設定(Ubuntu用)

参考:

http://centossrv.com/postfix.shtml

メール関連パッケージインストール

$ apt-get install postfix dovecot-common dovecot-pop3d dovecot-imapd sasl2-bin

MiniTest Specを使う

Gemfileに次の行を追加

group :test do
  gem 'factory_girl_rails'
  gem 'minitest-spec-rails'
  gem 'database_cleaner'
end

Modelのデータをtsv形式でimport/exportするRake task

Rakefile

require File.expand_path('../config/application', __FILE__)
require File.expand_path('../lib/tsv_data.rb', __FILE__)

MyApp::Application.load_tasks

task :export_data => :environment do

ThinReportsで複数レイアウトを使って一覧表を作成する

reportの作成方法やpageの作成方法はいくつも書き方があるので、 自分の使った書き方をメモ。

user_contents = { user_name: 'ユーザー名', user_address: '[email protected]' }

report = ThinReports::Report.create do |r|
  # ユーザーページレイアウト

r.start_new_page :layout => File.join(Rails.root, 'app', 'reports', 'user.tlf') do |page|

    def count_word( input )
      words = Hash.new(0)
      input_words = input.split(' ')
    
      input_words.each do |word|
        words[word] += 1
      end