LINUX FTPの自動化転送

下記のスクリプトで、実行すれば、設定したディレクトリに転送したいファイルが転送される。実際に実験したが、コマンドからやると一瞬で作業が完了して、処理しているか不安になるくらいだ。

ftp [-ginv] [host]

-g 正規表現によるファイル名展開を無効にする
-i 複数のファイルの転送中に,プロンプトを出力しない
-n .netrcを使用した自動ログインを行わない
-v リモート・サーバーから送られたすべての情報を表示する
host 接続するリモート・ホストを指定する

#!/bin/sh
HOST_NAME=”ホスト名またはIPアドレス”
USER_NAME=”ftpユーザー名”
PASSWORD=”パスワード”
LOCAL_DIR=”ローカル側の作業ディレクトリ”
GET_DIR=”ftp先の作業ディレクトリ”
FILE_NAME=”getするファイル名”

ftp -n ${HOST_NAME} << _EOF_ user ${USER_NAME} ${PASSWORD} bin lcd ${LOCAL_DIR} cd ${GET_DIR} get ${FILE_NAME} bye _EOF_

LinuxBean パスの通し方

パスの確認は、下記のコマンドで確認できる。

echo $PATH

●以下に、/usr/local/tools にパスの追加方法を記載する。

/home/joyがホームディレクトリとすると、 以下のようになります。

# cd /home/joy
# ls -a ←オプションをつけないとドットファイルがみえない。
.bash_profile .bashrc

【.bash_profile】と【.bashrc】とは両方ともユーザーがログインしたときに実行される ファイルで違いは、【.bash_profile】はログイン時のみ実行されるファイルであり、【.bashrc】は、ログイン時にbash_profileから読み込まれ実行されます。
別のシェルが起動したときにも実行されます。

ログイン時に実行されるファイルに「パスを通す」設定を記述することに より、
ログイン、ログアウトを実施しても、パスが追加したままの状態 になる。

# vi .barh_profile  ディスクトップのエディタでも編集可能
——————————————————–
# .bash_profile

PATH=$PATH:$HOME/bin
PATH=$PATH:/usr/local/tools ← 追加

export PATH

——————————————————–
すぐに反映させるためには、以下コマンドを実行します。
(または一度ログアウトし、ログインする)
# source .bash_profile
——————————————————–
# .bashrc

PATH=$PATH:/usr/local/tools ← 追加
——————————————————–
# source .bashrc

7ZIPをDOSプロンプトで使う。

Windows10で、自動でFTP接続をして、持ってきたデータを自動で解凍する。それをやる為に、バッチファイルで苦労をしている。そして、何とか出来上がった。

最初の1は、1番目に実行するって意味でつけました。また、-1は、当日じゃなく、1日前の日付で拾ってくるって意味で付けたものです。

結局は、ある一部のファイルが、ダウンロードしても、0バイトであり、解凍もできない状態で失敗。
ただ、下記のバッチファイルで、今回の様な変なデータじゃなければ簡単にWindowsのバッチファイルでも自動化できる内容になっている。

★1_ftp-1.bat

@echo off
set path=%path%;C:\data
set HOST=ここには、接続サーバー情報
set SCRIPT_FILE=exec.ftp

rem ftpコマンドのファイルを生成
call create_ftp_script-1.bat %HOST%

rem ftpコマンドを実行
ftpp -n -s:%SCRIPT_FILE%
del %SCRIPT_FILE%

★create_ftp_script-1.bat 上のバッチファイルで呼ばれるバッチファイル

@echo off
REM 日付の前日を求める
REM 日付はYYYY/MM/DD 形式とする。結果は環境変数 ans へ返す。
REM 引数がないときは本日とする。
set orgdate=%DATE:/=%

:年月日の分割
set yy=%orgdate:~0,4%
set mm=%orgdate:~4,2%
set dd=%orgdate:~6,2%
:月日の数値化(8進数対策)
set /a mm=1%mm%-100
set /a dd=1%dd%-100

set /a dd=dd-1

if %dd% NEQ 0 goto end

:月跨り処理
set /a mm=mm-1
if %mm% EQU 0 set mm=12&&set /a yy=yy-1

set sub=0030101001010 >sub.bat
set /a dd=31-%%sub:~%mm%,1%% >>sub.bat
call sub.bat

:後処理
if exist sub.bat del sub.bat

:閏年処理
:4で割り切れるか?
set /a u=yy %% 4
if not %u%==0 goto end
:100で割り切れて、400で割り切れないか?
set /a u=yy %% 400
set /a v=yy %% 100
if %v%==0 if not %u%==0 goto end
:2月か?
if %mm% EQU 2 set /a dd=dd+1

:end
set mm=0%mm%
set mm=%mm:~-2%

set dd=0%dd%
set dd=%dd:~-2%

rem下のような、3つの年月が加えられたファイルをダウンロードしようとしている。
set ans1=c023111%yy%%mm%%dd%001.zip
set ans2=c033111%yy%%mm%%dd%001.zip
set ans3=h013111%yy%%mm%%dd%001.zip

@echo off
set HOST=%1
set SCRIPT_FILE=exec.ftp
set FTPUSER=FTPのユーザー情報
set FTPPASSWD=FTPのユーザーPW
set GET_FILE1=%ans1%
set GET_FILE2=%ans2%
set GET_FILE3=%ans3%
set REMOTE_DIR=\

rem FTPスクリプトファイル作成開始
echo open %HOST% > %SCRIPT_FILE%
echo user>> %SCRIPT_FILE%
echo %FTPUSER%>> %SCRIPT_FILE%
echo %FTPPASSWD%>> %SCRIPT_FILE%
echo prompt
echo get %GET_FILE1%>> %SCRIPT_FILE%
echo get %GET_FILE2%>> %SCRIPT_FILE%
echo get %GET_FILE3%>> %SCRIPT_FILE%
echo bye>> %SCRIPT_FILE%

★2_unzip-1.bat

@echo off
REM 日付の前日を求める
REM 日付はYYYY/MM/DD 形式とする。結果は環境変数 ans へ返す。
REM 引数がないときは本日とする。
set orgdate=%DATE:/=%

:年月日の分割
set yy=%orgdate:~0,4%
set mm=%orgdate:~4,2%
set dd=%orgdate:~6,2%
:月日の数値化(8進数対策)
set /a mm=1%mm%-100
set /a dd=1%dd%-100

set /a dd=dd-1

if %dd% NEQ 0 goto end

:月跨り処理
set /a mm=mm-1
if %mm% EQU 0 set mm=12&&set /a yy=yy-1

set sub=0030101001010 >sub.bat
set /a dd=31-%%sub:~%mm%,1%% >>sub.bat
call sub.bat

:後処理
if exist sub.bat del sub.bat

:閏年処理
:4で割り切れるか?
set /a u=yy %% 4
if not %u%==0 goto end
:100で割り切れて、400で割り切れないか?
set /a u=yy %% 400
set /a v=yy %% 100
if %v%==0 if not %u%==0 goto end
:2月か?
if %mm% EQU 2 set /a dd=dd+1

:end
set mm=0%mm%
set mm=%mm:~-2%

set dd=0%dd%
set dd=%dd:~-2%

set ans1=c023111%yy%%mm%%dd%001.zip
set ans2=c033111%yy%%mm%%dd%001.zip
set ans3=h013111%yy%%mm%%dd%001.zip

set GET_FILE1=%ans1%
set GET_FILE2=%ans2%
set GET_FILE3=%ans3%
echo prompt
7za.exe e -pここにはPW %GET_FILE1%
7za.exe e -pここにはPW %GET_FILE2%
7za.exe e -pここにはPW %GET_FILE3%

★3_ftp.bat

@echo off
set path=%path%;C:\data
set HOST=FTPサーバー名が入る
set SCRIPT_FILE=exec.ftp

rem ftpコマンドのファイルを生成
call create_ftp_script.bat %HOST%

rem ftpコマンドを実行
ftpp -n -s:%SCRIPT_FILE%
del %SCRIPT_FILE%

★create_ftp_script.bat 上のバッチファイルで呼ばれるバッチファイル

@echo off
REM 日付の前日を求める
REM 日付はYYYY/MM/DD 形式とする。結果は環境変数 ans へ返す。
REM 引数がないときは本日とする。
set orgdate=%DATE:/=%

:年月日の分割
set yy=%orgdate:~0,4%
set mm=%orgdate:~4,2%
set dd=%orgdate:~6,2%
:月日の数値化(8進数対策)
set /a mm=1%mm%-100
set /a dd=1%dd%-100

set ans1=K0BIZ311K0%yy%%mm%%dd%1.zip
set ans2=SS1001311%yy%%mm%%dd%0.zip

@echo off
set HOST=%1
set SCRIPT_FILE=exec.ftp
set FTPUSER=FTPのユーザー名
set FTPPASSWD=FTPのパスワード
set GET_FILE1=%ans1%
set GET_FILE2=%ans2%
set REMOTE_DIR=\

rem FTPスクリプトファイル作成開始
echo open %HOST% > %SCRIPT_FILE%
echo user>> %SCRIPT_FILE%
echo %FTPUSER%>> %SCRIPT_FILE%
echo %FTPPASSWD%>> %SCRIPT_FILE%
echo prompt
echo get %GET_FILE1%>> %SCRIPT_FILE%
echo get %GET_FILE2%>> %SCRIPT_FILE%
echo bye>> %SCRIPT_FILE%

★4_unzip.bat

@echo off
REM 日付の前日を求める
REM 日付はYYYY/MM/DD 形式とする。結果は環境変数 ans へ返す。
REM 引数がないときは本日とする。
set orgdate=%DATE:/=%

:年月日の分割
set yy=%orgdate:~0,4%
set mm=%orgdate:~4,2%
set dd=%orgdate:~6,2%
:月日の数値化(8進数対策)
set /a mm=1%mm%-100
set /a dd=1%dd%-100

set ans1=K0BIZ311K0%yy%%mm%%dd%1.zip
set ans2=SS1001311%yy%%mm%%dd%0.zip

set GET_FILE1=%ans1%
set GET_FILE2=%ans2%
echo prompt
rem 7zを使って解凍作業
7za.exe e -y -pパスワード %GET_FILE1%
7za.exe e -y -pパスワード %GET_FILE2%

Windows10 WOL設定

Windows8以降は、BIOS設定だけじゃWOL機能は使えないらしい。

OSが起動してから、下記の設定が必要だ。

 

1.WindowsキーとXキーを同時に押します。
2.表示されたメニューから”電源オプション”を選びます。
3.”スリープ解除時のパスワード保護”をクリックします。
4.”現在利用可能ではない設定を変更します”をクリックします。
5.”高速スタートアップを有効にする(推奨)” のチェックを外します。
6.”変更の保存”をクリックし保存します。
7.再起動します。

という事です。いろんな設定があるものです。

PASSIVE FTP

Windows10プロフェッショナルを使っているが、DOSプロンプトで使用するFTPクライアントは、パッシブモードが使えないらしい。時間をかけて調査してみたが、結局は、海外の有料ソフトを使う事にした。まったく同じように使えるようだ。

http://passive-ftp.com/

なぜ、DOSで動くFTPを探していたかというと、あるサーバーにFTP接続して、特定のファイルをこちら側のサーバーに持ってくるためである。それを自動化させたかったので、このような調べ物をやっていた。

後ほどスクリプトなども記載するが、ちょっと理解できないくらいのもの。結局WindowsのDOS上で動くようなバッチファイルにするしかないのだが、今の時代でバッチファイルを使うのかとおもうと寂しい。GUIで全てできればいいのに。

SQLサーバーも無料版じゃなく有料なら、FTP接続マネージャーなるものがあるようだが、とにかく高い。なので、時間をかけて無料で対応するしかない。

ホームページを有効的に公開するには?

ホームページを知ってもらうには、様々な方法がありますが、まず、ホームページを誰に見せたいか?どのような用途で設置を考えているのか?を考える事からはじめればわかりやすいかと思います。

例えば、ビジネスでホームページを設置する場合でも、個人をターゲットにするのか?法人をターゲットにするのか?両方なのか?によってホームページの作り方も変わってきます。
個人であれば、次術的な詳細を掲載するよりも、わかりやすい効果やコスト面、体験談等にてアピールした方が良いでしょう。法人であれば、会社の信頼性や独自性などをアピールした方が良いでしょう。両方であれば、個人と法人を切り替えられるホームページの作りにしておくことなども考えられます。

そして、ホームページを設置したら、そのホームページが有効的に公開されているのかを確認することが大切です。
なので、闇雲に有料サービスを導入して、検索キーワードにて上位表示させたり、広告を出しても効果が無かったという事は多々あります。

その為には、まず、便利な無料分析ツールが存在しますので、それを使ってみる事も一つです。
Yahoo!アクセス解析  http://analytics.yahoo.co.jp/
GoogleAnalytics  http://www.google.com/intl/ja_jp/analytics/

また、ホームページを設置しているサーバー屋さんの方で、ログを公開している場合があるので、その履歴から分析することも可能です。

つまり、順番的には、
(1)ホームページのコンセプトを考える。(なんのために設置するのか?)
(2)分析ツールなどを設置して状態をいつでも確認できる状態にしておく。
(3)まずは、無料の方法で、ターゲットによるアクセスアップを考える。
(4)SEO対策として、facebookやtwitterや有名ブログサイトとの連携を考える。
(5)安くて効果がありそうな有料アドワーズを選定する。

上記の様な順番でやっていけば、コストも抑えられ有効的なホームページ公開ができるのでないかと思います。

SQL Server2014 Expressインストール

まったくSQLサーバーの事など知らない私が、数か月で社内のシステムを構築できるのだろうか?

しかし、やらなければならない状況なら人間は何だってできるはず。やってやりますよ。プロになってやる。
ってなことで、無料版のSQL Server2014 Expressってのマイクロソフトサイトからダウンロードしてインストールした。
ファイルも4タイプ程あり、SQL Server2014 Express  with toolってを選んだ。

OSは、Windows1032bit です。まったく訳もわからず、とにかくインストール。最初に、仕様で、.NET Framework 4が必要とのことで、インストール後、SQLサーバーの方をインストール。途中、

●インスタンスIDってのを聞かれたので、デフォルトで、「SQLEXPRESS」って入っていたので、JOYってのをくっつけて、SQLEXPRESSJOYにした。

●認証モードってのも聞かれたので、Windows 認証モードのままインストールした。
しかし、後になぜか、SQLサーバーに接続できなかったので、SQL Server Management Studioから、認証モードを変更して、混合モードに変えた。

この違いは何なのか?

Windows認証の方は、簡単にSQLサーバーに接続できる分、たぶん、WindowServerを構築して、ドメインコントローラーってところから、ユーザーを許可するようだ。

ところが、混合モードでは、SQL Server認証(IDとPW)で接続可能になる為、クライアント側も、Windows Professional版などのOSじゃなくても接続可能になるようだ。

もしかしたらもっと深い違いがあるかもしれないので、違ったら後ほど修正をします。とにかく今回は、動くまでのインストール

 

インストール後、データベースが動いているかどうかのチェック コマンドプロンプトで

C:¥>sqlcmd
1>

これがでれば接続されているらしい。

途中、PC(サーバーPC)のコンピュータ名を変えてしまったら、実験で作った新規のデータべースが削除できなくてゴミになってしまったのが気に食わなく時間を費やした。

 

●次に新規にデータベースを作成しようとして、オブジェクトエクスプローラーのデータベース上で右クリックして、「新しいデータベース」をクリックして、適当なデータベース名をつけて、作成するとエラーがでる。どうも権限が違うとおこられているようだ。(エラー262)

調べてみると、Windows認証でログインするとできるというので、ログインしなおすとできた。また、その時に、saのパスワードも設定して、SQL server認証時にsaでログインしても問題なく作成できることがわかった。でも、新規に作成したログインユーザーでは、ログインできず。後日調査することにする。

下の画像は、2014じゃないけど、同じような画面なので参考に。

KB101201_01_2 KB101201_01_3 KB101201_01_4 KB101201_01_5 KB101201_01_7

電話回線の種類と配線の見極め方3

電話回線の収納先の話をする。

電柱から引き込まれた電話線や光ケーブルは、宅内(社内)に引き込まれるわけですが、1回線しか引き込まない宅内などの場合は、直接、電話機のある場所までケーブルを引いて回線終端装置(ONU)一体型ルーターに接続して、そこから、ひかり電話のアナログ回線を電話機にいれている場合が多い。

i320

 

しかし、配置を変えたり多回線を引き込むような場合は、いったんMDF(MDF は、電話設備のひとつ。Main Distributing Frame の略で、日本語では通常「主配線盤」という)に引き込んでから、そこから分配することが良くある。

MDFは、屋外にある場合もあるし、宅内(社内)の壁に埋め込まれていたりするケースもある。昔は、交換室のような大きな部屋を使っていたケースもある。

hole1

 

 

 

 

 

20111128 007

 

大企業で何百回線も使用するような場所じゃない限り、写真のようなちょっと大きなケースに設置する事が多い。

この写真では、この中に、光回線を引き込み、回線終端装置(ONU)一体型ルーターを設置して、HUBでも設置すれば、全回線でインターネットができる環境になる。また、そこからアナログ回線を電話機に接続するとか、多回線アナログ回線を使用する場合は、このMDFの中に、交換機を置いて、各部屋に内線回線を引き込むパターンがある。

交換機を設置する場合は、実際は、MDFの中だと通気性が良くないので、通気性のあるキャビネットや、壁付(もしくは据え置き)で交換機は近くにおいて置く場合もある。

 

lan-komai3

 

MDFの中には、必ず電源も必要になります。HUBや、ルーターなども全て電源が必要になります。

 

 

 

 

b0122819_16225439

 

MDFなどに一旦集約された回線や端末線などは、配管を通って各部屋に行くことになる。しかし、左図のように家(事務所)を建築する前に、配管だけでもしっかりと通しておかなければ、後から配管を通すのは労力、費用とも大変だ。

なので、これから建築するなら、なにはともあれ、配管だけはしっかりと引いておいた方がいい。無線時代にはなっていますが、やっぱり信頼あるのは、有線接続である。

 

 

 

joutou59ランコンセント接続No2

 

 

 

 

 

 

 

210718_pcHI390120

 

配管を通した配線は、モジュラーを接続して、LANケーブルや電話機に接続する。もちろん、電話回線のモジュラーとLANのモジュラーは違うので注意してほしい。しかし、ビジネスホンなどの端末は、LANコネクタと同じものを使用しているケースがある。