サーバの空き容量をメールで配信する ( Windows Server

続き ここからはサーバ管理用の記述

 

ディスク容量定期監視メール

DiskUsage.vbs

Windows2008 R2 以降

Option Explicit

'WMIにて使用する各種オブジェクトを定義・生成する。
Dim oClassSet
Dim oClass
Dim oLocator
Dim oService
Dim sMesStr
Dim CPUInfo
Dim CPUCore
Dim Sendto
Dim UsageThreshold

'通知先
Sendto = "test1@example.com"
'ディスク使用容量しきい値 使用領域設定:単位(%)
UsageThreshold = 80


'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件をWQLにて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_Processor")

'コレクションを解析する。
For Each oClass In oClassSet

CPUInfo = oClass.Name
CPUCore = oClass.NumberOfCores

'sMesStr = sMesStr & "種類:" & oClass.Description & vbCrLf & _
'"名前:" & oClass.Name & vbCrLf & _
'"製造元:" & oClass.Manufacturer & vbCrLf & "コア数  :" & oClass.NumberOfCores & vbCrLf & _
'"現在の周波数:" & CStr(oClass.CurrentClockSpeed) & vbCrLf & _
'"最大周波数:" & CStr(oClass.MaxClockSpeed) & vbCrLf & _
'"L2キャッシュサイズ:" & CStr(oClass.L2CacheSize) & vbCrLf & vbCrLf

sMesStr = sMesStr & "" & vbCrLf & _
"CPU名前:" & oClass.Name & vbCrLf & "コア数  :" & oClass.NumberOfCores & vbCrLf & _
vbCrLf


Next

'MsgBox("Processorに関する情報です。" & vbCrLf & vbCrLf & sMesStr)

'使用した各種オブジェクトを後片付けする。
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing


'###########################

'Dim oClassSet
'Dim oClass
'Dim oLocator
'Dim oService
'Dim sMesStr
Dim Pcname
Dim Oss
Dim Bitt

'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件をWQLにて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_OperatingSystem")

 

'コレクションを解析する。
For Each oClass In oClassSet

Pcname = oClass.CSName
Oss = oClass.Caption
Spp = oClass.ServicePackMajorVersion
Bitt = oClass.OSArchitecture

'sMesStr = sMesStr & "" & oClass.CSName & _
'"" & oClass.Description & vbCrLf & vbCrLf
'Set Pcname = oClass.CSName


Next

'MsgBox "" & vbCrLf & vbCrLf & sMesStr

'使用した各種オブジェクトを後片付けする。
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing

 

'WMIにて使用する各種オブジェクトを定義・生成する。

Dim lRet

'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件をWQLにて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_ComputerSystem")

'コレクションを解析する。
For Each oClass In oClassSet

lRet =round (( oClass.TotalPhysicalMemory) / 1024/1024,0)

Next

'sMesStr = sMesStr & "" & oClass.CSName & vbCrLf & _
'"コンピュータの説明:" & oClass.Description & vbCrLf & vbCrLf
'MsgBox "Memory :"  & CStr(lRet) & "MBeです。"

'使用した各種オブジェクトを後片付けする。
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing


'WMIにて使用する各種オブジェクトを定義・生成する。
'Dim oClassSet
'Dim oClass
'Dim oLocator
'Dim oService
'Dim sMesStr
Dim Ipadd
Dim Spp
Dim Bbody
'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件をWQLにて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration")

'コレクションを解析する。
For Each oClass In oClassSet

If oClass.IPEnabled = True Then
Ipadd = oClass.IPAddress(0)


body = CStr(Pcname) & " [" & Ipadd & "] " & vbCrLf & CStr(Oss) & " " & _
CStr(Bitt) & vbCrLf & "SP:" & CStr(Spp) & vbCrLf & "Memory :"& CStr(lRet) & "MB" & vbCrLf & vbCrLf
'"IPアドレス:" & oClass.IPAddress(0) & vbCrLf & _
'"サブネットマスク:" & oClass.IPSubnet(0) & vbCrLf & _
'"DHCPの状態:" & CStr(oClass.DHCPEnabled) & vbCrLf & vbCrLf

End If

Next

'MsgBox "" & vbCrLf & vbCrLf & sMesStr

'使用した各種オブジェクトを後片付けする。
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing

 


'##############################################

'Option Explicit

Dim WarningCount
'Dim Pcname
Dim MailSubject
Dim Body
Dim MailBody
Dim SmtpHost
Dim SmtpPort
'Dim SmtpSSL
'Dim SmtpUser
'Dim SmtpPassword
Dim SmtpFrom

Dim net

 

'変数値set
Set net = CreateObject("WScript.Network")
Pcname = net.ComputerName
SmtpFrom = Pcname & "@example.com" & "<" & Pcname & "@example.com>"
'メールあて先

SmtpHost = "localhost"
'smtp auth or ssl の場合は以下必須
'SmtpSSL = True
'smtp port番号
SmtpPort = 25
'SmtpUser = "test1@example.com"
'SmtpPassword = "from_at_example_com_password"

MailSubject = "[" & Pcname & " Disk Warning ] ディスク容量監視警告 (" & UsageThreshold & "% 超過): " & Pcname
WarningCount = 0

'***
'ローカルコンピュータに接続する。
Set oLocator = Wscript.CreateObject("WbemScripting.SWbemLocator")

Set oService = oLocator.ConnectServer
'クエリー条件をWQLにて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_OperatingSystem")
'コレクションを解析する。
For Each oClass In oClassSet
      sMesStr = sMesStr & "OS:" & CStr(oClass.Caption) & CStr(Bitt) & vbCrLf _
     & "SP(R) : SP(R)" & CStr(oClass.ServicePackMajorVersion) & vbCrLf _
     & "Build:"  & CStr(oClass.Version) & vbCrLf _
     & "Memory  :" & CStr(lRet) & "MB" & vbCrLf 

Next

Dim objWMIService
'Dim objSWbemObjectCollection
'Dim net
'Dim objSWbemObject
'Dim DeviceID
'Dim Size
'Dim FreeSpace
'Dim ExistPersent
'Dim Caution
Dim objIpSet
Dim objConfig
Dim objMessage
Dim Bill
Dim UsageSpace

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Dim objSWbemObjectCollection
Set objSWbemObjectCollection = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DriveType = 3")
Dim objSWbemObject
    Mailbody = Mailbody & Pcname & "  [" & CStr(Ipadd) & "]" & vbCrLf _
    & sMesStr & vbCrLf & "ディスク監視閾値を超えました。ディスク使用閾値:"& UsageThreshold & "% 以上" & vbCrLf
For Each objSWbemObject in objSWbemObjectCollection
    Dim DeviceID
    Dim Size
    Dim FreeSpace
    Dim ExistPersent
    Dim Caution
    DeviceID = objSWbemObject.DeviceID
    Size = objSWbemObject.Size
    FreeSpace = objSWbemObject.FreeSpace
    UsageSpace = Size - FreeSpace
    ExistPersent = 100 - FreeSpace / Size * 100
    If ( ExistPersent > CDbl(UsageThreshold) ) Then
        Caution = "CAUTION!!!"
        WarningCount = WarningCount + 1
    Else
        Caution = ""
    End If

    MailBody = MailBody & DeviceID & vbTab & "空き" & round((FreeSpace / 1024 / 1024 / 1024),1) _
        & "GB" & vbTab & "全体" & round((Size / 1024 / 1024 / 1024),1) & "GB" _
        & "" & vbTab & "利用" & round((UsageSpace / 1024 / 1024 / 1024),1) & "GB" & vbTab _
        & "使用域" & round((ExistPersent),1) & "%" & vbTab & Caution & vbCrLf
Next

   Mailbody = Mailbody & vbCrLf & "" & vbCrLf & "---" & Pcname & " Disk Usage Check cron mail" & vbCrLf

If ( WarningCount > 0 ) Then
  Call SendMail(SmtpFrom, Sendto, MailSubject , MailBody )
End IF

Sub SendMail(FromMailAddress, ToMailAddress, Subject, Body )
    Dim objConfig
    Set objConfig = CreateObject("CDO.Configuration")
    objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'    objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl") = SmtpSSL
    objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver") = SmtpHost
    objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SmtpPort

    'ユーザー認証
'    objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
'    objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/sendusername") = SmtpUser
'    objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword") = SmtpPassword

    objConfig.Fields.Update
    
    Dim objMessage
    Set objMessage = CreateObject("CDO.Message")    
    Set objMessage.Configuration = objConfig

    objMessage.BodyPart.Charset = "utf-8"
    objMessage.Fields.Item("urn:schemas:mailheader:Precedence") = "bulk"
    objMessage.Fields.Item("urn:schemas:mailheader:X-Mailer") = "Windows CDO Message"
    objMessage.Fields.Update

    objMessage.From = FromMailAddress
    objMessage.To = ToMailAddress
    objMessage.Subject = Subject
    objMessage.TextBody = Body

    objMessage.Send

'   If Err.Number = 0 Then
'       WScript.Echo "メールを送信しました。"
'   Else
'       WScript.Echo "メールの送信に失敗しました。" & _
'           "(" & Err.Description & ")"
'   End If
End Sub


Set WarningCount =Nothing
Set Pcname =Nothing
Set MailSubject =Nothing
Set MailBody =Nothing
Set UsageThreshold =Nothing
Set SmtpHost =Nothing
Set SmtpPort =Nothing
'Set SmtpSSL =Nothing
'Set SmtpUser =Nothing
'Set SmtpPassword =Nothing
Set SmtpFrom =Nothing
Set Sendto =Nothing
Set net =Nothing
Set oLocator =Nothing
Set oService =Nothing
Set oClassSet =Nothing
Set oClass =Nothing
Set sMesStr =Nothing

Set oLocator = Nothing
Set objWMIService = Nothing
Set objSWbemObjectCollection = Nothing
Set DeviceID = Nothing
Set Size = Nothing
Set FreeSpace = Nothing
Set ExistPersent = Nothing
Set Caution = Nothing
Set MailBody = Nothing
Set oClassSet =Nothing
Set oService = Nothing
Set oClassSet = Nothing
Set Pcname = Nothing
Set Oss = Nothing
Set Bitt = Nothing
Set Bill = Nothing
Set Ipadd = Nothing
Set Spp = Nothing
Set lRet = Nothing




 

#2

Windows2003 R2 以前




Option Explicit

'WMIにて使用する各種オブジェクトを定義・生成する。
Dim oClassSet
Dim oClass
Dim oLocator
Dim oService
Dim sMesStr
Dim CPUInfo
Dim CPUCore
Dim Sendto
Dim UsageThreshold

'通知先
Sendto = "hoge.hoge@hoge.com"
'ディスク使用容量しきい値 使用領域設定:単位(%)
UsageThreshold = 80


'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件をWQLにて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_Processor")

'コレクションを解析する。
For Each oClass In oClassSet

CPUInfo = oClass.Name

 

Next


'使用した各種オブジェクトを後片付けする。
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing


'###########################

Dim Pcname
Dim Oss
Dim Bitt

'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件をWQLにて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_OperatingSystem")

 

'コレクションを解析する。
For Each oClass In oClassSet

Pcname = oClass.CSName
Oss = oClass.Caption
Spp = oClass.ServicePackMajorVersion

 

Next


'使用した各種オブジェクトを後片付けする。
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing

 

'WMIにて使用する各種オブジェクトを定義・生成する。

Dim lRet

'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件をWQLにて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_ComputerSystem")

'コレクションを解析する。
For Each oClass In oClassSet

lRet =round (( oClass.TotalPhysicalMemory) / 1024/1024,0)

Next


'使用した各種オブジェクトを後片付けする。
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing


'WMIにて使用する各種オブジェクトを定義・生成する。
Dim Ipadd
Dim Spp
Dim Bbody
'ローカルコンピュータに接続する。
Set oLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set oService = oLocator.ConnectServer
'クエリー条件をWQLにて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration")

'コレクションを解析する。
For Each oClass In oClassSet

If oClass.IPEnabled = True Then
Ipadd = oClass.IPAddress(0)


body = CStr(Pcname) & " [" & Ipadd & "] " & vbCrLf & CStr(Oss) & " " & _
CStr(Bitt) & vbCrLf & "SP:" & CStr(Spp) & vbCrLf & "Memory :"& CStr(lRet) & "MB" & vbCrLf & vbCrLf

End If

Next


'使用した各種オブジェクトを後片付けする。
Set oClassSet = Nothing
Set oClass = Nothing
Set oService = Nothing
Set oLocator = Nothing

 


'##############################################

'Option Explicit

Dim WarningCount
Dim MailSubject
Dim Body
Dim MailBody
Dim SmtpHost
Dim SmtpPort
Dim SmtpFrom

Dim net

 

'変数値set
Set net = CreateObject("WScript.Network")
Pcname = net.ComputerName
SmtpFrom = Pcname & "@hoge.com" & "<" & Pcname & "@hoge.com>"
'メールあて先

SmtpHost = "smtp.fecins.hoge.com"
'smtp auth or ssl の場合は以下必須
'SmtpSSL = True
'smtp port番号
SmtpPort = 25
'SmtpUser = "hoge.smtpuser@hoge.com"
'SmtpPassword = "from_at_example_com_password"

MailSubject = "[" & Pcname & " Disk Warning ] ディスク容量監視警告 (" & UsageThreshold & "% 超過): " & Pcname
WarningCount = 0

'***
'ローカルコンピュータに接続する。
Set oLocator = Wscript.CreateObject("WbemScripting.SWbemLocator")

Set oService = oLocator.ConnectServer
'クエリー条件をWQLにて指定する。
Set oClassSet = oService.ExecQuery("Select * From Win32_OperatingSystem")
'コレクションを解析する。
For Each oClass In oClassSet
sMesStr = sMesStr & "OS:" & CStr(oClass.Caption) & CStr(Bitt) & vbCrLf _
& "SP(R) : SP(R)" & CStr(oClass.ServicePackMajorVersion) & vbCrLf _
& "Build:" & CStr(oClass.Version) & vbCrLf _
& "Memory :" & CStr(lRet) & "MB" & vbCrLf

Next

 


Dim objWMIService
Dim objIpSet
Dim objConfig
Dim objMessage
Dim Bill
Dim UsageSpace

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Dim objSWbemObjectCollection
Set objSWbemObjectCollection = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DriveType = 3")
Dim objSWbemObject
Mailbody = Mailbody & Pcname & " [" & CStr(Ipadd) & "]" & vbCrLf _
& sMesStr & vbCrLf & "ディスク監視閾値を超えました。ディスク使用閾値:"& UsageThreshold & "% 以上" & vbCrLf
For Each objSWbemObject in objSWbemObjectCollection
Dim DeviceID
Dim Size
Dim FreeSpace
Dim ExistPersent
Dim Caution
DeviceID = objSWbemObject.DeviceID
Size = objSWbemObject.Size
FreeSpace = objSWbemObject.FreeSpace
UsageSpace = Size - FreeSpace
ExistPersent = 100 - FreeSpace / Size * 100
If ( ExistPersent > CDbl(UsageThreshold) ) Then
Caution = "CAUTION!!!"
WarningCount = WarningCount + 1
Else
Caution = ""
End If

MailBody = MailBody & DeviceID & vbTab & "空き" & round((FreeSpace / 1024 / 1024 / 1024),1) _
& "GB" & vbTab & "全体" & round((Size / 1024 / 1024 / 1024),1) & "GB" _
& "" & vbTab & "利用" & round((UsageSpace / 1024 / 1024 / 1024),1) & "GB" & vbTab _
& "使用域" & round((ExistPersent),1) & "%" & vbTab & Caution & vbCrLf
Next

Mailbody = Mailbody & vbCrLf & "" & vbCrLf & "---" & Pcname & " Disk Usage Check cron mail" & vbCrLf

If ( WarningCount > 0 ) Then
Call SendMail(SmtpFrom, Sendto, MailSubject , MailBody )
End IF

Sub SendMail(FromMailAddress, ToMailAddress, Subject, Body )
Dim objConfig
Set objConfig = CreateObject("CDO.Configuration")
objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
' objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl") = SmtpSSL
objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver") = SmtpHost
objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SmtpPort

'ユーザー認証
' objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
' objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/sendusername") = SmtpUser
' objConfig.Fields.Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword") = SmtpPassword

objConfig.Fields.Update

Dim objMessage
Set objMessage = CreateObject("CDO.Message")
Set objMessage.Configuration = objConfig

objMessage.BodyPart.Charset = "utf-8"
objMessage.Fields.Item("urn:schemas:mailheader:Precedence") = "bulk"
objMessage.Fields.Item("urn:schemas:mailheader:X-Mailer") = "Windows CDO Message"
objMessage.Fields.Update

objMessage.From = FromMailAddress
objMessage.To = ToMailAddress
objMessage.Subject = Subject
objMessage.TextBody = Body

objMessage.Send

' If Err.Number = 0 Then
' WScript.Echo "メールを送信しました。"
' Else
' WScript.Echo "メールの送信に失敗しました。" & _
' "(" & Err.Description & ")"
' End If
End Sub


Set WarningCount =Nothing
Set Pcname =Nothing
Set MailSubject =Nothing
Set MailBody =Nothing
Set UsageThreshold =Nothing
Set SmtpHost =Nothing
Set SmtpPort =Nothing
'Set SmtpSSL =Nothing
'Set SmtpUser =Nothing
'Set SmtpPassword =Nothing
Set SmtpFrom =Nothing
Set Sendto =Nothing
Set net =Nothing
Set oLocator =Nothing
Set oService =Nothing
Set oClassSet =Nothing
Set oClass =Nothing
Set sMesStr =Nothing

Set oLocator = Nothing
Set objWMIService = Nothing
Set objSWbemObjectCollection = Nothing
Set DeviceID = Nothing
Set Size = Nothing
Set FreeSpace = Nothing
Set ExistPersent = Nothing
Set Caution = Nothing
Set MailBody = Nothing
Set oClassSet =Nothing
Set oService = Nothing
Set oClassSet = Nothing
Set Pcname = Nothing
Set Oss = Nothing
Set Bitt = Nothing
Set Bill = Nothing
Set Ipadd = Nothing
Set Spp = Nothing
Set lRet = Nothing








 

bitnami CentOS Redmine -3

続き

mysqlダンプインポート

##現行のパスを確認
#echo $PATH

##mysql のパスを追加
export PATH=/opt/redmine/mysql/bin:$PATH
#mysql 単体で起動
#sudo /opt/redmine/ctlscript.sh start mysql

##mysql 状態確認
#sudo /opt/redmine/ctlscript.sh status mysql

##apache 停止
#sudo /opt/redmine/ctlscript.sh stop apache

##mysql のpathを通す
#export PATH=/opt/redmine/mysql/bin:$PATH

##mysql インポート実行
#mysql -u root -p
$drop database bitnami_redmine;
$create database bitnami_redmine;
$grant all privileges on bitnami_redmine.* to 'bitnami_redmine'@'localhost' identified by 'Mysqlパスワード';

##mysql ダンプインポート(コマンドプロンプト
#mysql -u root -p bitnami_redmine < bitnami_redmine.sql;


##apache 再起動
#sudo /opt/redmine/ctlscript.sh restart apache

##bitnami-redmine 再起動の場合
#systemctl restart bitnami-redmine

 

Ruby事前準備

##現在のpath を確認
echo $PATH

##rubyのpathを通す
#export PATH=/opt/redmine/ruby/bin:$PATH

 

マイグレーション

#cd /opt/redmine/apps/redmine/htdocs
#bundle exec rake db:migrate RAILS_ENV="production"
上記がだめな場合は下記を実施
#/opt/redmine/ruby/bin/rake db:migrate RAILS_ENV="production"
※上記で追加したパスは、ログインセッションが切れると消えてしまうので注意

 

(補足)添付ファイル移行

Redmine のダンプは添付ファイルやテーマまで移行できない。
従って、これについては別途移行作業を行う必要がある。
Teratermの転送機能を使い、添付ファイルを任意のディレクトリに転送する。

#tar -xvf attachfiles.tar
#mv 201* /opt/redmine/apps/redmine/htdocs/files
#mv delete.me /opt/redmine/apps/redmine/htdocs/files

bitnami CentOS Redmine -4 (補足

続き ここからはサーバ管理用の記述

 

ディスク容量定期監視メール

cd /home/testuser/
vi disk_chk.sh

#!/bin/sh

# 監視パーティション--実際のパーティション名に合わせること
# 下記、記述例はパーティションが下記のようにある前提
partition_1=/dev/mapper/centos-root
partition_2=/dev/mapper/centos-home
partition_3=/dev/sda1


# ディスク使用率閾値(%)
shikii_1=80
shikii_2=80
shikii_3=80

# 通知先メールアドレス
mailaddress="hoge@hoge.co.jp"

# メール送信用データ
srvname="hoge.example.com"
subject="$srvname Disk space alert"
maildata=`hostname && date && df -h`

#ディスクチェック処理
used_1=` df -h | grep $partition_1 | awk '{ print $5 }' | sed -e '$s/.$//' `
used_2=` df -h | grep $partition_2 | awk '{ print $5 }' | sed -e '$s/.$//' `
used_3=` df -h | grep $partition_3 | awk '{ print $5 }' | sed -e '$s/.$//' `

#閾値チェック1
if [ [ "$used_1" -lt "$shikii_1" ] ]
then
echo ok
else
mail -s "$subject" $mailaddress << MAILDATA
$maildata
MAILDATA
fi

#閾値チェック2
if [ [ $used_2 -lt $shikii_2 ] ]
then
echo ok
else
mail -s "$subject" $mailaddress << MAILDATA
$maildata
MAILDATA
fi

#閾値チェック3
if [ [ $used_3 -lt $shikii_3 ] ]
then
echo ok
else
mail -s "$subject" $mailaddress << MAILDATA
$maildata
MAILDATA
fi

 

mysql バックアップ

#cd /root
#mkdir mysql && mkdir mysql/backup
#vi backupmysql.sh

#!/bin/sh

# バックアップの保存期間(days)
period=7

# バックアップ保存用ディレクトリの指定
dirpath='/root/mysql/backup'

# バックアップ先フォルダがなければ作成
[ ! -d ${dirpath} ] && mkdir -p ${dirpath};


# ファイル名を指定する(※ファイル名で日付がわかるようにしておきます)
filename=`date +%Y%m%d`

# 指定したDBのスキーマおよびデータをすべて吐き出す -pのあとは空白入れない
mysqldump -u root -pMermpass -h localhost bitnami_redmine > $dirpath/$filename.sql

# パーミッション変更 chmod 700 $dirpath/$filename.sql

# 保存期間を過ぎたバックアップを削除
oldfile=`date --date "$period days ago" +%Y%m%d`
rm -f $dirpath/$oldfile.sql

中身を隠す
#chmod 0755 /root/backupmysql.sh

 

 

Redmine 添付ファイル等 バックアップ

cd /root
vi redmine_back.sh

#!/bin/sh

# バックアップの保存期間(days)
period=7

# バックアップ保存用ディレクトリの指定
dirpath='/root/mysql/backup'
##########
# バックアップ先
BAKDIR="/root/mysql/backup";
# バックアップ元 ( tar コマンドでエラーになるので先頭の / は外す )
SRCDIRS="
opt/redmine/apps/redmine/htdocs/files
opt/redmine/apps/redmine/htdocs/plugins
" ;


# バックアップ先フォルダがなければ作成
[ ! -d ${dirpath} ] && mkdir -p ${ dirpath } ;


# ファイル名を指定する(※ファイル名で日付がわかるようにしておきます)
filename=`date +%Y%m%d`

# バックアップ実行
cd /;
tar -czf ${BAKDIR}/`date +%Y%m%d`.attach.tar.gz ${SRCDIRS} 1> /dev/null;

# 保存期間を過ぎたバックアップを削除
oldfile=`date --date "$period days ago" +%Y%m%d` rm -f $dirpath/$oldfile.attach.tar.gz

bitnami CentOS Redmine -2

続き

linux版 bitnami apache httpd.conf

httpd.conf
/opt/redmine/apache2/conf/bitnami/bitnami.conf

ルート、中間等はここで設定

 

httpアクセスを https へリダイレクト

参考
Apacheでhttpをhttpsに強制リダイレクト

vi /opt/redmine/apache2/conf/bitnami/bitnami.conf

< VirtualHost _default_:80>
#赤字を追記
DocumentRoot "/opt/redmine/apache2/htdocs"
ServerName www.exmanple.com:80
RewriteEngine on
RewriteCond %{HTTP_HOST} ^wwwc\.example.com
RewriteRule ^/(.*)$ https://www.example.com/$1 [R=301,L]

<VirtualHost _default_:443>
DocumentRoot "/opt/redmine/apache2/htdocs"
SSLEngine on
SSLProtocol all -SSLv2

bitnami 版 apacheログファイルの場所編集

cd /opt/redmine/apache2/conf
vi httpd.conf

#bitnami 版 apache ログファイルの場所変更

ErrorLog "/var/log/httpd_error_log"
CustomLog "/var/log/httpd_access_log" common

ServerAdmin hoge@hoge.com

ServerName www.example.com:80

 

apache 再起動

#apache のみ停止
#sudo /opt/redmine/ctlscript.sh stop apache

#apache のみ起動
#sudo /opt/redmine/ctlscript.sh start apache

#apache のみ再起動
#sudo /opt/redmine/ctlscript.sh restart apache

 

apacheサービス登録

vi /etc/systemd/system/bitnami-redmine.service

[Unit]
Description=run bitnami redmine
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/opt/redmine/ctlscript.sh start
ExecStop=/opt/redmine/ctlscript.sh stop

[Install]
WantedBy=multi-user.target

 

 

redmine メールサーバ設定

##configration.yml 編集
#cd /opt/redmine/apps/redmine/htdocs/config
#cp congiration.yml comfigration.yml.org
#vi /opt/redmine/apps/redmine/htdocs/config/congiration.yml
##smtp 情報を追加
production:
delivery_method: :smtp
smtp_settings:
address: smtp.hoge.co.jp
port: 25
domain: hoge.co.jp

2018年を振り返る

 

2018年を振り返る、と言いたいところだったが、なんやかんやで
記事の更新が年を越してしまった。
(下記、文中は2018年時点として記載しています)

2018年もまた、混乱が続いた1年だったが、とりわけ日本では
自然災害で多くの方々が亡くなった。
亡くなられた方のご冥福をお祈りいたします。
 
 

世界ではアメリカと中国の覇権争いの激化が目立った一年だった。

トランプが相変わらずの自国第一主義を掲げているが
パプアニューギニアで開催されたAPECでは、通商政策を巡って米中の対立、
また保護主義をめぐっての欧米の対立があり、一時は首脳宣言の提出も危ぶまれた。
さらにその後、アルゼンチンで開催されたG20においても、首脳宣言に
保護主義への積極的対抗姿勢が盛り込まれないなど、アメリカに与した苦渋の
閉幕となった。
ファーウェイの幹部がカナダで逮捕され、そのあとに、カナダ人が中国で
拘束される事件が相次いだ。米中の衝突に悲観した米国の市場は大いに荒れ、
その余波が全世界に波及した。
アメリカではFRBの利上げ・逆イールド現象、中国は不動産バブル、というように
経済面では暴落の懸念が注視される中、
世界の市場は米中通商摩擦がどういう展開になるかで大きく左右されるだろう。

さて、前年と同様中東について触れてみたい。
自分でも消化不良なのは重々承知しているので、そこはご了承のほどを。


ISの収束が見えたかに思われた中東はいまだに混乱が続いている。
収束どころか、アメリカではトップ自らが、現場を知り尽くす軍人の意見を
聞くことなく更迭し(マティス国防総省長官)、いきなりシリアからの撤退を
表明する始末。
さすがに与野党から慎重な意見が相次いだことから、意見を一転、慎重に
進めると発言を訂正するというドタバタになった。
以前のイラク戦争ではないが、"パパ"ブッシュが失敗した同じ轍を踏もうと
していたのである。
こういうあたり、中東のパワーバランス、歴史に不明なトランプを
必死に軌道修正しようとするアメリカ首脳の迷走ぶりが垣間見える。

ところでサウジアラビアに関しては、ムハンマド皇太子主導のもと、
オイルマネーの道を打開すべく、国内の経済改革が進められてきた。
しかしながら、サウジ政府に批判的な報道を続けてきたジャマル・カショギ氏の
殺害が報じられるや、10月の「砂漠のダボス会議」は一転、世界の政界、
財界の要人の欠席が相次いだ。
それでなくとも、イエメンへの軍事支援が国内経済の足を引っ張っている矢先である。
日本とて例外ではなく、サウジとの共同ファンドをかついで投資拡大を
もくろんだソフトバンクが思わぬ余波を受けた。
(本音は、グループの16兆円の有利子負債償還であろうが、7兆円程度の
 資産価値で2018年度が終わったのは、孫氏にとって厳しいスタートアップとなっ 
 た)。

 

OPECは崩壊するのか カタール脱退はOPEC解体の序曲か
年の終わり近く、カタールOPEC脱退を表明するというニュースが駆け巡った。
以前より、OPEC加盟国の結束力低下は表面化していたが、
頼みとする中国・インド市場も先が見えず、昨年まで上昇基調であった原油価格は
再び下降しはじめた。
世界市場に影響を与えてきたOPECは世界最大のカルテルであるが、
とくに1980年代以降、原油の価格統制が自由市場にゆだねられるようになって以来、
影響力の低下が目立ってきていた。
さらに近年、シェールオイルに代表される代替エネルギー革命により、
その傾向はさらに顕著なものになってきている。
こうした中、年末にアメリカのウォールストリート・ジャーナルが流した
ニュースが世界中を巡った。
サウジアラビアシンクタンクが、OPEC解体がオイル市場に与える可能性に
ついて検討しているという報道である。
それを、OPECの盟主たるサウジ国内でやっているというのだから、
意図的なリークに思えなくもない。
いずれにしても、もはや中東の加盟国との同盟よりも、エネルギーのみならず、
安全保障上、大きなプレゼンスを持つアメリカ(そしてロシア)との関係を
重視せざるを得ない事情がある。
OPEC存続の意義を加盟国が見いだすことができなければ、数年のうちに
OPECは解体の道を歩むことになるだろう。

 

こうした世界の意向が渦めく中、次回の総会で、各国がどのような動きをするのか
注目される。

■逆オイルショック ~サウジ逆襲のシナリオ
前述といささか矛盾する題になってしまうのだが。
以上、サウジにネガティブなトピックを挙げてきたが、サウジにも全く
カードがないわけではない。それが逆オイルショックである。
オイルショックについては、下記の記事を参考
OPEC総会目前で30%超の原油下落!逆オイルショックに警戒せよ
アメリカはエネルギー供給大国であり、原油高はむしろ国益に適う。
しかしながら、サウジにプレッシャーをかけているのは、大統領再選を
狙うトランプである。
利上げ、原油高といった問題に、トランプが一定の成果を上げれば、大統領再選への
準備が一歩整うことにもなる。
そこをサウジがトランプの意向に沿う形で増産を進め、原油価格を、
トランプが期待する以上に、むしろ意に反する形で、一気に
(1バレル=30ドル前半?)引き下げるものである。
当然のことながらシェール市場も下がる。
それを利して、アメリカの原油市場への関与を低下させ
サウジが再びイニシアティブを握るというシナリオである。

ただしサウジとしてもリスクは高い。
シェール市場が混乱すると、慌てるのはアメリカだけでない。
サウジのみならず、世界規模(それもリーマンショックをはるかに超える)
の恐慌に発展する可能性がある。
(とくに日本の銀行は、シェール関連のジャンク債を保有している割合が
各国に比べ高いと言われるので、日本経済には深刻な影響が出る
可能性がある。)

サウジとしては自国の経済を犠牲にする上、国内の支持が大きく左右される。
さらにはイランとの対峙を考えれば、そこはやはり
安全保障上アメリカに頼らざるを得ない。
現時点ではサウジには、このシナリオに着手する余裕はないように思われる。

いずれにしても次回以降のOPEC総会、さらにG20を巡る各国の動向は注目である。
次回のG20の議長国は日本。果たしてどんな旗振りをするのであろうか。

 

bitnami CentOS Redmine

  1. 下記を参照

Bitnami-Redmine【SSLの設定方法】

CentOS に Apache HTTPD を導入して SSL を有効にする

Linux + bitnami で redmine 環境を作る

前準備

#DNS に追加したい場合

#nmcli connection modify ens160 ipv4.dns "192.168.1.AX 192.168.1.BX 192.168.1.BX "

 

proxy 関連

#yum proxy 設定
#vi /etc/yum.conf
proxy=http://proxy.xxx.xxx:pp

#wget proxy 設定
#vi /etc/wgetrc
http_proxy=http://proxy.xxx.xxx:pp/
https_proxy=http://proxy.xxx.xxx:pp/

 

mailx インストール設定

#vi ~/.mailrc
set smtp=smtp://smtpサーバ:port番号

sudo chmod 0700 ~/.mailrc

SElinux設定

#vi /etc/selinux/config
SELINUX=disabled

firewalld設定

#firewall-cmd --permanent --add-port=http/tcp
#firewall-cmd --permanent --add-port=https/tcp
#firewall-cmd --reload
#firewall-cmd --list-all

#firewalld ssh 特定のネットワークのみ許可 ゾーン指定は任意で読み替えること
#firewall-cmd --list-all
#firewall-cmd --permanent --remove-service=ssh
#firewall-cmd --reload
#ルールを追加する場合
#firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.125.0/24" port protocol="tcp" port="22" accept"
#firewall-cmd --reload
#firewall-cmd --list-all

yum アップデート

#yum -y update

bitnami CentOS版インストール

#perl-Data-Dumper事前インストール
#yum install -y perl-Data-Dumper

#bitnami バイナリ ダウンロード
#cd /opt
#wget https://bitnami.com/redirect/to/354032/bitnami-redmine-3.4.6-4-linux-x64-installer.run
#chmod 755 bitnami-redmine-3.4.6-4-linux-x64-installer.run
#sudo ./bitnami-redmine-3.4.6-4-linux-x64-installer.run

 



Redmineセットアップ開始


Language Selection

Please select the installation language
[1] English - English
[2] Spanish - Espanol
[3] Japanese - 日本語
[4] Korean - ???
[5] Simplified Chinese - ?体中文
[6] Hebrew - ?????
[7] German - Deutsch
[8] Romanian - Roman?
[9] Russian - Русский
Please choose an option [1] : 3
----------------------------------------------------------------------------
ようこそ Bitnami Redmine Stack セットアップウィザードへ。

----------------------------------------------------------------------------
インストールするコンポーネントを選択してください。インストールしないの選択を
外してください。準備ができたら“次へ“をクリックしてください。

Subversion [Y/n] :n

PhpMyAdmin [Y/n] :y

Redmine : Y (Cannot be edited)

Git [Y/n] :y

上記選択部分が正しいことを確認してください。 [Y/n]:

----------------------------------------------------------------------------
Installation folder

Bitnami Redmine Stack をインストールするフォルダを選択してください。

フォルダを選択 [/opt/redmine-3.4.6-4]: /opt/redmineディレクトリを変更する

----------------------------------------------------------------------------
管理者アカウントの作成

Bitnami Redmine Stack の管理者アカウントを作成します。

表示用氏名 [User Name]: XXXX

Email アドレス [user@example.com]:

ログイン名 [user]: xxxx

パスワード :
確認のためにパスワードをもう一度入れてください :
----------------------------------------------------------------------------
データベースに保管する際の既定の言語

データベース設定の規定値として使用する言語を選択してください:

[1] Bosnian
[2] Bulgarian
[3] Catalan
[4] Czech
[5] Danish
[6] German
[7] English
[8] Spanish
[9] French
[10] Galician
[11] Hebrew
[12] Hungarian
[13] Italian
[14] 日本語
[15] 韓国語
[16] Lithuanian
[17] Dutch
[18] Norwegian
[19] Polish
[20] Portuguese
[21] Romanian
[22] Russian
[23] Slovak
[24] Slovenian
[25] Serbian
[26] Swedish
[27] Turkish
[28] Ukrainian
[29] Vietnamese
[30] Chinese
オプションを選択してください [14] : 14

Do you want to configure mail support? [y/N]: n

----------------------------------------------------------------------------
お使いのコンピュータに Bitnami Redmine Stack をインストールする準備が整いました。

続けますか? [Y/n]: y

----------------------------------------------------------------------------
しばらくお待ちください。 Bitnami Redmine Stack をお使いのコンピュータにインストール中です。

インストール中
0% ______________ 50% ______________ 100%
################################
----------------------------------------------------------------------------
セットアップウィザードによる Bitnami Redmine Stack のインストールが完了しました。

Redmine アプリケーション起動 [Y/n]: y

情報: Bitnami Redmine Stack については、ブラウザで
http://127.0.0.1:80 にアクセスしてください。
続けるには [Enter] キーを押してください :