CentOSとWindows10でファイル共有

CentOSを共有サーバにしてWindows10でファイルを共有する方法の備忘録

サーバ設定

全部ルートユーザで実行

1.SMB4をインストール

バージョン確認

smbd -V

旧バージョンがインストール済みの場合はアンインストール

yum remove samba
yum remove samba-common-*

SMB4をインストール

yum install samba4
2.共有ディレクトリ作成
mkdir /home/samba
chmod 777 /home/samba
3.smb.confで共有設定

/etc/samba/smb.conf

[global]
workgroup = ワークグループ名
netbios name = ホスト名
hosts allow = 127. 接続を許可するネットワーク(例:192.168.3.)
client min protocol = SMB3
client max protocol = SMB3
#この設定がないとWindows10からの接続ができなかった
[共有名(共有フォルダの名前になる)]
comment = Personal Share
path = /home/samba
browsable = yes
public = yes
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
4.プロセス起動
/etc/rc.d/init.d/smb start
/etc/rc.d/init.d/nmb start

クライアントから接続

エクスプローラーなんかから

\\サーバのホスト名\共有名

でアクセスしてみる。

Cloud9がディスクfullになってしまう事象の解決法

Cloud9でrailsアプリを開発してHerokuにデプロイしていると、tmpファイルに圧迫されてディスクfullになってしまう。

以下のコマンドで比較的使用量の大きいディレクトリを確認できる。

du -h -t 50M

Herokuを使用している場合、おそらく、以下のディレクトリの使用量が大きいはず。

~/.local/share/heroku/tmp

上記tmpディレクトリ内のtmpファイルを削除すれば当面のディスクfull状態は解消できる

cd ~/.local/share/heroku/tmp
rm -rf *
※ちゃんと該当ディレクトリに移動して削除してね。ルートディレクトリなんかで上記rmコマンドたたくと大事故になりますよ。

削除に関しては自己責任でお願いします。

MySQLでレコードがあればUPDATE、なければINSERTする方法

INSERT hoge_table (column1, column2, column3) 
  VALUES (value1, value2, value3)
ON DUPLICATE KEY UPDATE 
  column1=VALUES(column1), 
  column2=VALUES(column2), 
  column3=VALUES(column3);

UPDATE以降のVALUES関数はINSERTで指定された値を参照するためのもの。 つまり、上記SQLは、hoge_tableに該当レコードがなければcolumn1=value1、column2=value2、column3=value3で 新規レコードを作成する。 該当レコードがあれば、column1=value1、column2=value2、column3=value3でUPDATEする となる。

log4j2とShutdownHookについて注意事項

log4j2の設定ファイルでshutdownHookをdisableにしておかないと、タイミングによっては、アプリより先にlog4j2がシャットダウンしてしまって、 アプリのshutdownHook内でログの出力ができなくなる場合がある。

設定例は以下のとおり。

<Configuration shutdownHook="disable">
・
・
</Configuration>

Ruby on Railsのgenerateでテストを作成しないようにする

Ruby on Railsのgenerateでcontrollerやmodelを作成する際、テストコードが作られないようにする方法

rails generate controller Hoges --no-test-framework
rails generate model Hoge --no-test-framework

Heroku環境でRuby on RailsアプリにBasic認証を掛ける方法

1. application_controller.rbに以下の一文を追加する
http_basic_authenticate_with :name => ENV['BASIC_AUTH_USERNAME'], :password => ENV['BASIC_AUTH_PASSWORD'] if Rails.env == "production"
2. Herokuの環境変数Basic認証用のユーザー名とパスワードを設定する。
heroku config:add BASIC_AUTH_USERNAME="username" BASIC_AUTH_PASSWORD="password"