てみブログ

てみブログ

個人的な覚書用です

Visual Studio Code操作

前提

Windows10想定です。

オートフォーマットする

Windowsでは、Shift + Alt + F
(Macだと Shift + Option + Fだそうです。)

日本語化する

View > Command Paletteから、
「Configure Display Language」を検索。
日本語を選択してインストール後、アプリを再起動する。

拡張機能

Extension(左ペインの四角が並んでいるアイコン)をクリックする。
必要な拡張機能を検索してインストールする。

・HTML Preview
 HTML編集時にWeb画面の表示を行う。
 Ctrl+Shift+Vで表示

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セッティング

個人用覚え書き

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 ファイル名   ローカルのファイルをサーバーにアップロード