IT家・挑戦雑記

情報を制する者は世界を制す!

PHPによる日付計算処理

9月-9-2010 By マサ

以下はPHPによる日付計算関数などを利用して算出しています。
とても便利です!
※ソースコードは後ほど掲載予定♪


★今日は今年の何日目??
 今日(2018/12/15)は今年(2018年)の1月1日から348日目です!


★今年もあと何日で終わり??
今年もあと17日で今年も終わります・・・

★状況
 Windowsにおいて、netコマンドを利用してサービスを停止するバッチファイルを作成した。
 そのバッチファイルを実行すると、DOS窓が消えずに無限ループになってしまう。

★環境
 ・OS:Windows(winxp 及び win2003)
 ・バッチファイルのファイル名:net.bat

★原因
 ・バッチファイルのファイル名に問題有り!
  ※「net.bat」と書くと、ファイル名にあるnetコマンドを呼び出してしまう。

★解決
 ・バッチファイルの名前を変更する
  ※バッチファイル名にはバッチファイルのコマンドを使用しない事!

★バッチファイルの内容(net.bat)
━━━━━━━━━━━━━━━━━━━━━━━━━
rem ★IISのサービス(+依存関係のサービス)を停止させる!
rem /yは、依存関係のサービスもstopさせるオプション
net stop /y "IIS Admin Service"

━━━━━━━━━━━━━━━━━━━━━━━━━
★やりたい事
 Accessで、他のDBを参照してリンクテーブルを作成する。

★環境
 ・WindowsXP SP3
 ・Access2003

★リンクテーブルを作成するための関数
 ※以下のオレンジの太文字を環境に応じて変更して下さい。
 ◆備考
  ・リンクテーブルが存在しない場合はリンクテーブルを作成
  ・同名のリンクテーブルが存在する場合は上書き(処理は削除して新規作成)

━━━━━━━━━━━━━━━━━━━━━━━━━
Public Function mk_tbl_link()

  '★参照ライブラリ ・・・ 以下を参照しないと動作しません。
    '・Microsoft ADO Ext 2.8 DLL And Security

  '---------------------------------------------
  '★変数宣言
    Dim cat As New ADOX.Catalog
    Dim tbl() As New ADOX.Table
    Dim linkMDB As String
    Dim linkMDB_path As String
    Dim linkMDB_file As String
    Dim linkTblNames() As String
    Dim i As Integer
    Dim tblNames As Variant

    Dim itemNum As Integer
    'リンクするテーブル数を入力。ただし、配列だから0からスタートに注意!
    itemNum = 6

    ReDim tbl(itemNum) As New ADOX.Table
    ReDim linkTblNames(itemNum) As String

  '---------------------------------------------
  '★値のセット
    linkMDB_path = "D:リンク先のパス"
    linkMDB_file = "リンク先のMDB.mdb"
    linkMDB = linkMDB_path & linkMDB_file
    i = 0
    cat.ActiveConnection = CurrentProject.Connection

    'リンクするテーブル名をセット
    linkTblNames(0) = "リンクするテーブル名1"
    linkTblNames(1) = "リンクするテーブル名2"
    linkTblNames(2) = "リンクするテーブル名3"
    linkTblNames(3) = "リンクするテーブル名4"
    linkTblNames(4) = "リンクするテーブル名5"
    linkTblNames(5) = "リンクするテーブル名6"
    linkTblNames(6) = "リンクするテーブル名7"

  '---------------------------------------------
  '★メイン処理
    For Each tblNames In linkTblNames
    '■各種設定
      Set tbl(i).ParentCatalog = cat
      tbl(i).Properties("Jet OLEDB:Create Link") = True
      tbl(i).Properties("Jet OLEDB:Link Datasource") = linkMDB

      'パスワード ・・・ 参照先DBにパスワードがある場合はここを記入
      'tbl(i).Properties("Jet OLEDB:Link Provider String") = ";pwd=リンク先のMDBのパスワード"

      'リンクしたテーブル名
      tbl(i).Name = tblNames

      'ソーステーブル名
      tbl(i).Properties("Jet OLEDB:Remote Table Name") = tblNames

    '■リンクテーブル処理
      For Each TB In cat.Tables
        If TB.Name = tblNames Then
          'テーブル削除
          cat.Tables.Delete tbl(i).Name
          Exit For
        Else
          '
        End If
      Next TB

      'リンクテーブル作成
      cat.Tables.Append tbl(i)

      'インクリメント
      i = i + 1
    Next tblNames

  'オブジェクトの破棄
  Set cat = Nothing
  Set tbl(itemNum) = Nothing

  '終了メッセージ
  MsgBox ("リンクテーブルの作成/更新が完了しました")

End Function
━━━━━━━━━━━━━━━━━━━━━━━━━

★やりたい事
 Accessで、リンクテーブルの参照先をVBAを用いて変更する。

★環境
 ・WindowsXP SP3
 ・Access2003

★リンクテーブルを変更するための関数
 ※以下の赤の太文字を環境に応じて変更して下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━
Public Function ch_tbl_link()

  '★参照ライブラリ ・・・ 以下を参照しないと動作しません。
    '・Microsoft DAO 3.6 Object Library

  '-------------------------------------------------------------------
  '★変数宣言
    Dim tdf As TableDef
    Dim dbs As Database

  '-------------------------------------------------------------------
  '★オブジェクトセット
    Set dbs = CurrentDb
    Set tdf = dbs.TableDefs("リンクテーブル名")

  '-------------------------------------------------------------------
  '★メイン処理

    'プロパティ値の変更
    With tdf
      .Connect = ";DATABASE=D:リンク先のMDB.mdb;TABLE=リンクテーブル名"
      .RefreshLink
    End With

    '終了メッセージ
    MsgBox "リンクテーブルの変更が完了しました。"

    'オブジェクトの破棄
    Set tdf = Nothing
    dbs.Close: Set dbs = Nothing

End Function
━━━━━━━━━━━━━━━━━━━━━━━━━

以前紹介した「Apacheで突然CGIが使えなくなる問題

突然suexecが復活してCGIが使えなくなる事があります。
そこで、自動的にsuexecが復活しているかチェックして、Apacheを再起動するスクリプトを紹介します。


■スクリプト概要
suexecが存在していた時、自動的に削除してApacheを再起動する

■テスト済み環境
 CentOS 5.4

■スクリプト内容
#////////////////////////////////////////////////////////////////#
# @スクリプト名:chk_suexec.sh
# @バージョン:1.00
# @作成日:10.04.04
# @更新日:10.04.04
# –
# @作者:masa.h(マサ)
# @サイト1:http://masa.cmix.info/
# @サイト2:http://blog.masa.cmix.info/
# @メール:oldtimer.masa@gmail.com
#////////////////////////////////////////////////////////////////#

#———————-#
# +ユーザ環境
#———————-#

#使用方法
#sh chk_suexec.sh

#suexecのpath
suexec_path=/usr/sbin/suexec

#———————-#
# +処理部分
#———————-#

if [ -e $suexec_path ]; then
#echo “File exist !!”
rm $suexec_path
service httpd restart
date ‘+%Y/%m/%d%r’ >> chk_suexec.log

#else
#echo “No file”
fi

■スクリプト概略
 ・サーバーのsuexec_pathを設定
 ・crontabにて設定

■スクリプトのダウンロード先
 シェルスクリプト:chk_suexec.sh