ページ

ラベル Linux の投稿を表示しています。 すべての投稿を表示
ラベル Linux の投稿を表示しています。 すべての投稿を表示

2013年7月6日土曜日

CentOS6にmonoをインストール

C#などの.NET系をLinuxで利用するためにmono projectがあります
2013/07/06現在最新版が3.0.12でありまたこちらをCentOSにインストールしようと思ったのでメモします。
ソースコードは70M程度の容量があるのでサイズに注意です

環境
環境情報 構築日 ソフトウェア
CentOS 6.3 2013/07/06 yum,make

結構いろいろ必要なのでOSをインストールしてすぐの想定で行います
$ su -
# とりあえずdev環境を整えるために必要そうなものをインストール
$ yum install bison gettext glib2 freetype fontconfig libpng libpng-devel libX11 libX11-devel glib2-devel libgdi* libexif glibc-devel urw-fonts java unzip gcc gcc-c++ automake autoconf libtool make bzip2 wget
$ wget http://download.mono-project.com/sources/mono/mono-3.0.12.tar.bz2
$ bunzip2 mono-3.0.12.tar.bz2
$ tar xvf mono-3.0.12.tar 
$ cd mono-3.0.12.tar 
$ ./configure --prefix=/usr/local
$ make && make install
$ mono --version

手順自体は単純ですが、ちょっと面倒ですね。 大体の時間はMac上にVMを立てて動かしましたが10分程度でした。 とりあえず動かす環境ができたので実際にexeなど作って今度動作させる予定

2013年7月2日火曜日

deteコマンドの使い方

dateコマンドは日付を確認するための機能ですが思いのほかオプションが
あり覚えられないのでよく利用するものをメモ
自分でよく利用するのはyyyy/MM/ddなので原則こちらのフォーマットにあわせています.

主に自分で利用するのは、今日、昨日、今月末、30日前などがよく利用します.


dateコマンド例(yyyy/MM/dd)
目的 コマンド
今日 date +'%Y/%m/%d'
明日 date -d '1day' +'%Y/%m/%d'
昨日 date -d '1day ago' +'%Y/%m/%d'
月初 date +'%Y/%m/01'
月末 date +'%Y/%m/%d' -d "1 day ago `date +'%Y/%m/01' -d'1 month'`"
前月 date -d '1month ago' +'%Y/%m/%d'
前月末 date +'%Y/%m/%d' -d "1 day ago `date +'%Y/%m/01'`"
来月末 date +'%Y/%m/%d' -d "1 day ago `date +'%Y/%m/01' -d'2 month'`"
来月末 date +'%Y/%m/%d' -d "1 day ago `date +'%Y/%m/01' -d'2 month'`"
1年前 date +'%Y/%m/%d' -d '1 year ago'
30日前 date +'%Y/%m/%d' -d '30day ago'


ついでに簡単な時間も出してみます。


dateコマンド例(hh:mm:ss)
目的 コマンド
現在時刻 date +'%H:%M:%S'
1時間前 date -d '1hour ago' +'%H:%M:%S'
1時間後 date -d '1hour' +'%H:%M:%S'

dateコマンドは意外と利用するがよく利用するのをメモするべきですね

2013年6月18日火曜日

capistranoサンプル集【tomcat restart】

capistranoのサンプル集です。 普段利用しているものを少しメモ含めまとめました。
role :host, "test1.com", "test1.com" # サーバを指定複数の場合は,区切りで追記
set :application, "deploy.test" # アプリケーション名
set :ssh_options, :port => "22" # ポート指定
set :user, "admin" # sshでログインするユーザー(要sodo権限)

# tomcat 再起動
task :tomcat-restart, :roles => :host do
 sudo "/etc/init.d/tomcat5 restart"
 sudo "/etc/init.d/httpd restart"
end
単純ですが、意外と使えます。 実運用では、ロードバランサーがあると全tomcatが止まるので監視が飛ぶかもしれない ので要注意です。ご利用の際は、監視を受け取っている方にご連絡を

2013年6月17日月曜日

bashでfor next

備忘録となるがシェル(bash)でforを利用したカウンタを作る際に苦労したので
紹介

やりたいことは、JavascriptやC言語などでよくある
for (i = 0; i < 10; i+=2) {
 処理を記述
}

上記みたいなi+=2のfor文を作りたい


実際にシェルで記載

#!/bin/bash
for i in `seq 0 2 10`;
do
  echo "${i}"
done
上記で対応ができるbash的にはforはforeachみたいな役割なので 少々書き方が面倒だが便利に行えます。

2013年4月25日木曜日

Linuxでmailに添付ファイルを付ける【uuencodeを利用しない】

Linuxでシェルを作っていると、メールを送信すること
またメールに、添付ファイルを付けたくなった
既存のコマンドだけで可能な限り対応できないかと模索し
シェルを作成。
よく目にするのは、uuencodeコマンドを利用する方法だが
今回は動作環境の事情もあり、該当のコマンドを利用しない方帆を記載

sendmailコマンドを利用し対応、少し汎用性は付けたが
ほぼ基礎のみ比較的簡単に添付ファイルが送付可能
複数のファイルには非対応のため注意が必要

原理は、mailはテキストを特定の書式で送るのが原理のため
書式を手動で作成すれば良い

メールの仕様書を読めばより理解が深まるだろう

環境
環境情報 構築日 ソフトウェア 必要込コマンド
CentOS 5.6 2013/04/25 なし sendmail


#!/bin/bash

############################
## メール添付ファイルスクリプト
## コマンドラインから添付付きメールを送信するスクリプトです.
## ※日本語部分対応のため、完全ではございません.
##
## mail.sh {fromアドレス} {toアドレス} {タイトル} {本文} {添付ファイル名}
##
############################

## 初期化
from_address=$1
to_address=$2
subject=$3
mail=$4
TMP_FILE='mail.tmp'
boundary=`date +%Y%m%d%H%M%N`
content_type=`file --mime $1 | cut -d' ' -f2`
filename=`echo $5 | sed -e "s/.*\/\(.*$\)/\1/"`

## メール情報付与
echo "From: $from_address" > $TMP_FILE
echo "To: $to_address" >> $TMP_FILE
echo "Subject: $subject" >> $TMP_FILE
echo "MIME-Version: 1.0" >> $TMP_FILE
echo "Content-type: multipart/mixed; boundary=\"----$boundary\"" >> $TMP_FILE
echo "Content-Transfer-Encoding: 7bit" >> $TMP_FILE
echo "" >> $TMP_FILE
echo "This is a multi-part message in MIME format." >> $TMP_FILE
echo "" >> $TMP_FILE

## 本文
echo "------$boundary" >> $TMP_FILE
echo "Content-type: text/plain; charset=iso-2022-jp" >> $TMP_FILE
echo "Content-Transfer-Encoding: 7bit" >> $TMP_FILE
echo "" >> $TMP_FILE
echo "$main" >> $TMP_FILE
echo "" >> $TMP_FILE

## ファイル情報(base64で送信)
echo "------$boundary" >> $TMP_FILE
echo "Content-type: $content_type" >> $TMP_FILE
echo " name=$filename" >> $TMP_FILE
echo "Content-Transfer-Encoding: base64" >> $TMP_FILE
echo "Content-Disposition : attachment;" >> $TMP_FILE
echo " filename=$filename" >> $TMP_FILE
echo "" >> $TMP_FILE
cat $5 | base64 >> $TMP_FILE
echo "" >> $TMP_FILE
echo "------$boundary--" >> $TMP_FILE

## メールを送信
sendmail -i $to_address < $TMP_FILE

## 一時ファイルを削除
rm -f $TMP_FILE

exit 0

多少便利ぐらいで使う用途が限定されるが 意外と便利である 検証中に尽き動作保証できないが雰囲気が理解いただけるかと思います。

2013年4月21日日曜日

postgresql 9.2のインストール

CentOS 5.6を使用しpostgresql 9.2をインストールする構築手順書

環境
環境情報 構築日 ソフトウェア 必要込コマンド
CentOS 5.6 2013/02/01 postgresql yum
$ yum -y install ruby ruby-devel ruby-irb ruby-rdoc ruby-libs

$ su -
$ cd ~/
$ mkdir download
$ cd download

$ wget http://yum.postgresql.org/9.2/redhat/rhel-5-x86_64/pgdg-centos92-9.2-5.noarch.rpm
$ rpm -ivh pgdg-centos92-9.2-5.noarch.rpm
$ yum clean packages
$ yum install postgresql postgresql-server
$ /etc/init.d/postgresql-9.2 initdb
$ /etc/init.d/postgresql-9.2 start
とりあえずこれでインストールができる。

2013年4月14日日曜日

【Linux】capistranoインストール手順

CentOS 5.6を使用しcapistranoを利用可能にする構築手順書

環境
環境情報 ソフトウェア 必要込コマンド
CentOS 5.6 ruby yum
$ yum -y install ruby ruby-devel ruby-irb ruby-rdoc ruby-libs
$ cd /usr/local/src/
$ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.24.tgz
$ tar xzovf rubygems-1.8.24.tgz
$ cd rubygems-1.8.24
$ ruby setup.rb
$ gem install capistrano

【Linux】CentOSでPHP+sqliteを利用する

CentOS 5.6を使用しPHPでsqlite3を利用可能にする構築手順書

環境
環境情報 ソフトウェア 必要込コマンド
CentOS 5.6 php,wget wget
$ wget http://pecl.php.net/get/sqlite3-0.6.tgz
$ su -
$ yum -y install php httpd
$ tar xzf sqlite3-0.6.tgz
$ cd sqlite3-0.6
$ phpize
$  ./configure
$ vi sqlite3.c
$ wget -O php-5.3.3.tar.bz2 http://museum.php.net/php5/php-5.3.3.tar.bz2
$ tar zxvf php-5.3.3.tar.bz2
$ bzip2 -dc php-5.3.3.tar.bz2 | tar xvf -
$ cd php-5.3.3/ext/sqlite
$ phpize
$ ./configure
$ make
$ make install
$ vi /etc/php.d/sqlite.ini
$ echo "extension=sqlite3.so" /etc/php.d/sqlite.ini
$ /etc/init.d/httpd graceful