HTML - Java Script 基本文法
HTMLでJavascriptを使う、基本的な話です。
JavaScript自体の基本文法はこちら参照
HTMLの基本文法はこちら
ファイル構成
2通りある。
・html(.html)とjavascript(.js)を準備し、htmlからjavascriptを読みこむ。基本形。
┗test.js
┗test.html
<script src="test.js"></script>
・html内にjavascriptを記述する。短いコードならこっちでいい。
┗test.html
<script> function hogehoge(){ console.log('fugafuga'); } </script>
ボタンをクリックしたときに関数を呼び出す。
書き方がいくつかある。
・ボタン自体に呼ぶ関数を設定する。
・ボタンにIDを付けて、該当するIDが押されたことをScript側で検知して関数を起動する。
・ボタン自体に呼ぶ関数を設定する。
<button onclick="buttonClick()">ボタン</button> <script> function buttonClick(){ alert('Click'); } </script>
ボタンにIDを付けて、該当するIDが押されたことをScript側で検知して関数を起動する。
<button id="button1">ボタン</button> <script> function buttonClick(){ alert('Click'); } let button = document.getElementById('button1'); button.onclick = buttonClick; </script>
フォームの値を読みこむ・書き込む
フォームにIDをつけておき、valueで操作する。
<input id="input1"><br> <input id="output1"><br> <button onclick="test()">ボタン</button> <script> function test(){ let input1 = document.getElementById('input1'); let output1 = document.getElementById('output1'); //インプット1の値をログに出力する。 console.log(input1.value); //アウトプット1のフォームに「hogehoge」をセットする。 output1.value = "hogehoge"; } </script> </script>
WinSCP自動化バッチ
目的:WinSCPを用いたSFTPでのアップロード、ダウンロードを自動化する。
前提
・Windows OS前提
・WinSCPがインストールされていること
例)EC2の指定ディレクトリからログファイル(.log)をダウンロードする。
ファイル構成 以下のファイルが同一ディレクトリにあるものとする。
・実行用バッチ(WinSCP.bat)
・コマンドファイル(command.txt) WinSCPに読みこませる。
・鍵ファイル(mykey.pem)
・ダウンロード用ディレクトリ(download)
WinSCP.bat
@echo off rem 実行ディレクトリへ移動 cd %~dp0 rem WinSCPを起動し、コマンドファイルを読み込ませる。 "C:\Program Files\WinSCP\WinSCP.exe" /console /script=command.txt
command.txt
option batch on #接続(ユーザー、接続先、鍵を指定) open ec2-user@192.168.10.1:22 -privatekey=".\mykey.pem" #接続先(サーバー側)のディレクトリを指定 cd /var/www/test/logs #ローカルのディレクトリを指定 lcd .\download #ダウンロード(尚、アップロードの場合はput) get *.log #切断 close exit
TeraTerm起動バッチ
TeraTermの起動時に、以下のような初期設定を同時に行う。
・接続先ホスト名、ポートを指定する。
・設定ファイルを読み込む
・ユーザー、パスを指定する
・秘密鍵を指定する
・Windows前提
・TeraTermのEXE実行時に起動オプションを付与することで実現する。
例:秘密鍵を使ってEC2に接続する。
@echo off start "" ^ "C:\Program Files\teraterm\ttermpro.exe" ^ 192.168.100.1:22 ^ /user=ec2-user ^ /auth=publickey ^ /keyfile="C:\work\mykey.pem"
(「^」は改行前後で1行とみなす。
実際に実行されるコマンドは1行だが、見やすさのために改行している。
最終行の末尾には「^」は不要)
・コマンド詳細
startコマンドでTeraTermを起動
start "" ^ "C:\Program Files\teraterm\ttermpro.exe" ^
及び接続先とポートを指定
192.168.100.1:22 ^
接続ユーザーを指定
/user=ec2-user ^
パスワードはいずれかのパターンを使う
・パスワードを指定
/auth=password ^ /passwd=hogehoge ^
・毎回パスワード入力を求める
/auth=password ^ /ask4passwd ^
・指定した秘密鍵を用いる
/auth=publickey ^ /keyfile="C:\work\mykey.pem" ^
読みこむ設定ファイルを指定(プロキシの設定をしている場合など)
/F="C:\work\myTERATERM.INI" ^
(個人用)新規Windows PCセッティング
個人用覚え書き
Windowsインストール覚書 に従って、一式設定する。
USキーボードの設定が必要な場合はこちらも
とりあえずWindowsアップデートをかける。
ユーザー辞書をメインPCから引き継ぐ
スタートメニューのタイルによく使うものを並べる。
- コントロールパネル
- リモートデスクトップ
- コンピュータの管理
- サービス
- イベントビューアー
- メモ帳、ペイント、電卓
- Word、Excel、Powerpoint
- 他、インストールしたアプリケーション
インストールするもの
Chrome
アドオン:- uBlock Origin
- crxMouse Chrome Gesture
- New Tab Redirect
- TabsPlus
- Keepa
ブックマークバーを表示。必要に応じて追加
- Lhaplus
- Adobe Reader
- Kindle
- Microsoft Office(有償)
- sakura editor
- winmerge
必要に応じて、インストールするもの
開発系
FTPサーバー作成(Linux)
前提:
LHEL 8.4
FTPのライブラリはvsftpdを使用。
作成や更新はRootユーザーでやる(sudo)
vsftpdのインストール
インストールされているか確認する。
$ vsftpd -v
バージョンが出たらインストール済み。
無ければインストールする。
$ sudo yum install -y vsftpd
インストールできたら起動する。
$ sudo systemcrl start vsftpd
自動起動させる場合は、enable設定を行う。
$ sudo systemctl enable vsftpd
確認
$ sudo systemctl is-enabled vsftpd
enabledならOK
FTP用のユーザーを作成する。
操作はLinuxのユーザー作成手順に従う。
ここではユーザー名をftp_userとした。
$ sudo useradd ftp_user
/home/ftp_user が作成されたことを確認。
$ sudo passwd ftp_user
パスワードを2回入力して設定。
vsftpdの初期設定
以下に設定ファイルがあるのでVimで開く
$ sudo vi /etc/vsftpd/vsftpd.conf
以下の主要な設定をする。
anonymous_enable=NO #不特定のユーザーによるログインを拒否する(デフォルトでNOになってた) chroot_local_user=YES #接続先のディレクトリより上位のディレクトリを参照不可にする。 pasv_enable=YES #デフォルトでパッシブモードで接続する。 pasv_min_port=10001 pasv_max_port=10100 #パッシブモードで使用するポート範囲を記述する。 user_config_dir=/etc/vsftpd/ftp #FTP接続先を定義する。
クライアントからの接続
とりあえずサーバー上で試す。
ftpをインストールする。
$ sudo yum install -y ftp
インストールできたら起動
$ ftp
openして、localhostに接続する。
$ ftp ftp> open (to) localhost
ユーザーとパスワードを聞かれる。
さっき設定したftp_userで接続する。
クライアント操作
user ログインする。(ログインに失敗したときにこれでリトライ)
pwd サーバーのディレクトリパスを表示する lcd ローカルのディレクトリパスを表示する。
ls サーバーのファイル一覧を表示する。
cd 移動先 サーバーのディレクトリを移動する。
lcd 移動先 ローカルのディレクトリを移動する。
get ファイル名 サーバーのファイルを取得する。
put ファイル名 ローカルのファイルをアップロードする。
FTPサーバー作成、アクセス(Windows)
FTPサーバーインストール(IIS機能内)
役割と機能>サーバーの役割 にて有効化を行う。
・「Webサーバー(IIS)」を有効化。
さらに展開して、
・Webサーバー(IIS)Webサーバー>FTPサーバー を有効化。
FTPサーバーの設定
機能インストールできたら、
IISマネージャー>サイトを開き、
「FTPサイトの追加」をクリック
・FTPサイト名を任意に決める。
・コンテンツを配置する物理ディレクトリを決める。
(C:\inetpub\ftproot あたりか)
・後ほど設定するユーザーに対して、必要なアクセス許可(読み、書き、フルコン)を付与する。
・ポートはデフォルトだと21。必要に応じて変える。
指定したポートはサーバークライアント間でアクセスが通るようにする。(FWなどで遮断していないか確認)
・必要に応じてSSLを設定。
ローカルネットワーク内でとりあえずやるなら無しで。
SSLする場合は証明書を割り当てる必要あり。
・アクセス許可で、指定されたユーザーを選択し、Windowsユーザーを任意に割り当てる。
(FTPに接続する際のパスワードは、割り当てたWindowsユーザーのパスワードを利用する。)
・許可範囲(読み取り、書き込み)を設定する。
・作成したFTPサイトが起動していることを確認する。
・サイトのFTP認証を開き、基本認証及び匿名認証を有効にする。
Windowsクライアントからの接続
最初にファイアウォールで受信を許可する。
(これが通ってないと、FTPサーバーに接続されてもコマンドの結果の戻りが受信できない。)
(150 Opening ASCII mode data connection の表示で固まった場合はこれが原因の可能性が高い。)
クライアントPC側のファイアウォールの詳細設定を開く。
受信の規則>新しい規則
種類:プログラム を選択
プログラムのパス:参照を開いて、ftp.exeを選択
(%SystemRoot%\System32\ftp.e.exe になる)
接続を許可する を選択し、適用対象のドメイン、プライベート、パブリックをチェックする。
任意の名前を付けて保存する。
コマンドプロンプトを開き、
ftp
ftp> が表示されるので、
open
宛先を聞かれるので、接続先を特定できるホスト名かIPアドレスを入力する。
うまくいけばサーバーに接続される。
ユーザーとパスワードを聞かれるので入力する。
230 User logged in
が表示されればOK
繋がらない場合は以下を確認
・ファイアウォールで、指定したポートをブロックしていないか。
(デフォルトだとポート21)
・IISで、FTPサイトの認証が有効になっているか。
・ログインユーザーがFTPディレクトリへの読み書き権限を持っているか。
FTPクライアントの操作
コマンドはLinuxコマンドに準じる。
通常のLinuxコマンドはサーバー側に対する操作となる。
pwd サーバー側のディレクトリ確認
lcd ローカル側のディレクトリ確認
cd サーバー側のディレクトリ変更
lcd ローカル側のディレクトリ変更
ls サーバー側のディレクトリ内容表示
!dir ローカル側のディレクトリ内容表示
get ファイル名 サーバーのファイルをローカルに取得
put ファイル名 ローカルのファイルをサーバーにアップロード