end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

install mysql5.7 to rhel8

更?に、上記2 entryの続きです。

内容は、上記entryに似ていますが、osが前回のcent に対し、今回のrhelですので、 微妙に異なる点がありました。

Step 1 - 依存パッケージのインストール

以下を yum インストール。

$ sudo yum install gcc
$ sudo yum install git
$ sudo yum install openssl-devel
$ sudo yum install ncurses-devel
$ sudo yum install libtirpc-devel

Step 2 - 依存パッケージのインストール (その2)

cmakeは、新しいverが欲しかった為、srcより、インストール。

$ wget https://github.com/Kitware/CMake/releases/download/v3.21.0/cmake-3.21.0.tar.gz
$ tar -xvf cmake-3.21.0.tar.gz
$ cd cmake-3.21.0
$ ./configure
$ make
$ make test
$ sudo make install

centosにおいて rpcgen ( rpcsvc-proto )は、devtoolset に含まれるようですが、 rhelにおける devtoolset のインストールが不明でしたので、srcよりインストール。

$ sudo yum install automake
$ sudo yum install gettext*

$ wget https://github.com/thkukuk/rpcsvc-proto/archive/refs/tags/v1.4.2.tar.gz
$ tar -xvf v1.4.2.tar.gz
$ cd rpcsvc-proto-1.4.2
$ ./autogen.sh
$ ./configure
$ make
$ make test
$ sudo make install

Step 3 - mysql5.7のインストール

$ tar -xvf mysql-boost-5.7.34.tar.gz
$ cd /home/end0tknr/tmp/mysql-5.7.34
$ /usr/local/bin/cmake . \
   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
   -DDEFAULT_CHARSET=utf8 \
   -DDEFAULT_COLLATION=utf8_general_ci \
   -DENABLED_LOCAL_INFILE=true \
   -DWITH_INNOBASE_STORAGE_ENGINE=1 \
   -DWITH_EXTRA_CHARSETS=all \
   -DWITH_READLINE=ON \
   -DDOWNLOAD_BOOST=ON \
   -DWITH_BOOST=/home/end0tknr/tmp/mysql-5.7.34/boost \
   -DFORCE_INSOURCE_BUILD=1 \
   -DWITH_SYSTEMD=ON

$ make
$ make test
$ sudo make install

Step 4 - my.cnf の作成

mysql5.7 をsrcからinstall - end0tknr's kipple - web写経開発

上記エントリと同様ですので、省略します。

Step 5 - user & group 追加

$ sudo groupadd mysql
$ sudo useradd -r -g mysql mysql

Step 6 - ディレクトリ作成

以前、行った際のosと異なることの影響でしょうか、 いくつか mkdir しました。

# su - mysql
$ mkdir /home/mysql/data
# mkdir /var/run/mysqld
# chown mysql:mysql /var/run/mysqld

Step 7 - データベースの初期化

$ sudo su - mysql
$ /usr/local/mysql/bin/mysqld --initialize

Step 8 - 自動起動の設定と、データベースの起動

# cd /etc/systemd/system
# cp /home/end0tknr/tmp/mysql-5.7.34/scripts/mysqld.service .

# systemctl enable mysqld
# systemctl start  mysqld

Step 9 - 接続テスト

mysql8と異なり、pwなしで、すぐに接続できます。

$ /usr/local/mysql/bin/mysql

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.01 sec)

install tomcat6 to rhel8

install java6 to rhel8 , use via alternatimes - end0tknr's kipple - web写経開発

上記エントリの続きです。

Step1 - インストール

と言っても、apache-tomcat-6.0.53.tar.gz のダウンロード & 解凍のみ。

$ sudo su -
# cd /usr/local
# mkdir tomcat
# cd tomcat

# wget https://archive.apache.org/dist/tomcat/tomcat-6/v6.0.53/bin/apache-tomcat-6.0.53.tar.gz
# tar -xvf apache-tomcat-6.0.53.tar.gz

Step 2 - alternatives にtomcatを登録

# alternatives --install /usr/local/tomcat_home tomcat_home /usr/local/tomcat/apache-tomcat-6.0.53 1

# alternatives --config tomcat_home

Step 3 - tomcat環境変数

特にJAVA_HOMEを必要としますので、setenv.sh を作成

# /usr/local/tomcat_home/bin/setenv.sh
export JAVA_HOME=/usr/local/java_home
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_HOME=/usr/local/tomcat_home/

# chmod 755 /usr/local/tomcat_home/bin/setenv.sh

Step 4 - 実行ユーザであるtomcatを追加し、自動起動設定

# useradd -s /sbin/nologin tomcat
# chown -R tomcat:tomcat /usr/local/tomcat
# vi /etc/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat 6
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/usr/local/tomcat_home/tomcat.pid
RemainAfterExit=yes

ExecStart=/usr/local/tomcat_home/bin/startup.sh
ExecStop=/usr/local/tomcat_home/bin/shutdown.sh

[Install]
WantedBy=multi-user.target


# chmod 755 /etc/systemd/system/tomcat.service

# systemctl enable tomcat
# systemctl start  tomcat

Step 5 - manager-guiを使用する場合、tomcat-users.xml を編集

# vi /usr/local/tomcat_home/conf/tomcat-users.xml

以下、2行を追加

<role rolename="manager-gui"/>
<user username="admin" password="ないしょ" roles="manager-gui"/>

# systemctl restart tomcat

以上

install java6 to rhel8 , use via alternatimes

Step 0 - インストール先

$ cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.4 (Ootpa)
$ uname --all
Linux rhel8.a5.jp 4.18.0-305.el8.x86_64 #1 SMP
Thu Apr 29 08:54:30 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux

Step 1 - ダウンロード

download java6 from https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html

Step 2 - javaをインストール

と言っても、自己解凍ファイルの jdk-6u45-linux-x64.bin を実行するだけ。

$ sudo su -
# cd /usr/local
# mkdir java
# cd java

# cp ~end0tknr/tmp/jdk-6u45-linux-x64.bin .
# ./jdk-6u45-linux-x64.bin 
Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
   creating: jdk1.6.0_45/
   creating: jdk1.6.0_45/db/
   creating: jdk1.6.0_45/db/bin/
  inflating: jdk1.6.0_45/db/bin/ij   
  inflating: jdk1.6.0_45/db/bin/NetworkServerControl  
  inflating: jdk1.6.0_45/db/bin/setNetworkClientCP.bat  
  inflating: jdk1.6.0_45/db/bin/setEmbeddedCP.bat
  <略>
   creating: jdk1.6.0_45/include/linux/
  inflating: jdk1.6.0_45/include/linux/jawt_md.h  
  inflating: jdk1.6.0_45/include/linux/jni_md.h  
  inflating: jdk1.6.0_45/include/jvmti.h  
  inflating: jdk1.6.0_45/include/jawt.h  
  inflating: jdk1.6.0_45/include/jdwpTransport.h  
  inflating: jdk1.6.0_45/include/classfile_constants.h  
  inflating: jdk1.6.0_45/COPYRIGHT   
Creating jdk1.6.0_45/jre/lib/rt.jar
Creating jdk1.6.0_45/jre/lib/jsse.jar
Creating jdk1.6.0_45/jre/lib/charsets.jar
Creating jdk1.6.0_45/lib/tools.jar
Creating jdk1.6.0_45/jre/lib/ext/localedata.jar
Creating jdk1.6.0_45/jre/lib/plugin.jar
Creating jdk1.6.0_45/jre/lib/javaws.jar
Creating jdk1.6.0_45/jre/lib/deploy.jar
 
Done.
#

Step 3 - libnsl.so.1 を追加インストール

rhel8では、libnsl.so が含まれなくなったらしく、 以下を参考に yum で、これをインストール。

RHEL 8へのインストール中に「libnsl.so.1 が必要ですが、見つかりません」メッセージが表示される

$ /usr/local/java/jdk1.6.0_45/bin/java -version
Error occurred during initialization of VM
Unable to load native library: libnsl.so.1:
  cannot open shared object file: No such file or directory


$ sudo yum install /lib64/libnsl.so.1

$ /usr/local/java/jdk1.6.0_45/bin/java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

Step 4 - alternatives にjavaを登録

# alternatives --install /usr/local/java_home java_home /usr/local/java/jdk1.6.0_45 1

# alternatives --config java_home
There is 1 program that provides 'java_home'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/local/java/jdk1.6.0_45


# vi /etc/bashrc
 
export JAVA_HOME=/usr/local/java_home
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar


$ which java
/usr/local/java_home/bin/java

rhel8試用に伴う Red Hat サブスクリプションの有効化

Red Hat Enterprise Linux 8 を試用しますが、今後もきっと、忘れるので、メモ

rhel8の初期状態では、repositoryを参照できず、yum を使用できません

$ cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.4 (Ootpa)

$ sudo yum install samba

Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Error: There are no enabled repositories in "/etc/yum.repos.d", "/etc/yum/repos.d", "/etc/distro.repos.d".

以下のコマンドにより、Red Hat の サブスクリプション & repository の有効化

ブラウザで redhatへ、アクセスすることでも可能なようですが、試していません

$ sudo subscription-manager register
[sudo] password for end0tknr: 
Registering to: subscription.rhsm.redhat.com:443/subscription
Username: end0tknr
Password: 
The system has been registered with ID: 74cc7463-bffe-4e49-b8c6-f97088a30def
The registered system name is: rhel8.a5.jp
[end0tknr@rhel8 tmp]$ sudo subscription-manager list
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
Product Name:   Red Hat Enterprise Linux for x86_64
Product ID:     479
Version:        8.4
Arch:           x86_64
Status:         Not Subscribed
Status Details: Not supported by a valid subscription.
Starts:         
Ends:           

$ sudo subscription-manager list --available
+-------------------------------------------+
    Available Subscriptions
+-------------------------------------------+
Subscription Name:   Red Hat Developer Subscription for Individuals
Provides:            Red Hat Developer Tools (for RHEL Server for ARM)
                     Red Hat Software Collections (for RHEL Server for ARM)
                     Red Hat Ansible Engine
                     JBoss Enterprise Application Platform from RHUI
                     Red Hat CodeReady Linux Builder for IBM z Systems - Extended Update
                     Support
                     Red Hat JBoss AMQ Interconnect
                     JBoss Enterprise Application Platform
                     JBoss Enterprise Web Server from RHUI
                     Red Hat Enterprise Linux for IBM z Systems - Extended Update Support
                     Red Hat Container Development Kit
                     Red Hat Beta
                     RHEL for SAP (for IBM Power LE) - Update Services for SAP Solutions
                     Red Hat OpenShift Container Platform
                     MRG Realtime
                     Red Hat JBoss Data Grid
                     dotNET on RHEL (for RHEL Server)
                     Red Hat CodeReady Linux Builder for x86_64 - Extended Update Support
                     Red Hat OpenShift Enterprise JBoss A-MQ add-on
                     Red Hat OpenShift Application Runtimes Beta
                     Red Hat Enterprise Linux High Availability - Update Services for SAP
                     Solutions
                     Oracle Java (for RHEL Server)
                     Red Hat Enterprise Linux Resilient Storage for x86_64
                     Red Hat Software Collections (for RHEL Server)
                     Red Hat Enterprise Linux for ARM 64
                     JBoss Enterprise Web Platform
                     Red Hat Enterprise Linux for Real Time
                     Red Hat CodeReady Linux Builder for ARM 64
                     Red Hat Developer Tools (for RHEL Server)
                     Red Hat Developer Tools Beta (for RHEL Server)
                     Red Hat Enterprise Linux for x86_64
                     Red Hat Enterprise Linux Resilient Storage for IBM z Systems -
                     Extended Update Support
                     Red Hat Enterprise Linux High Performance Networking (for RHEL
                     Compute Node)
                     Red Hat S-JIS Support (for RHEL Server) - Extended Update Support
                     dotNET on RHEL Beta (for RHEL Server)
                     Red Hat CodeReady Linux Builder for x86_64
                     Red Hat Enterprise Linux for SAP HANA for x86_64
                     RHEL for SAP HANA - Update Services for SAP Solutions
                     Red Hat Enterprise Linux Scalable File System (for RHEL Server) -
                     Extended Update Support
                     RHEL for SAP HANA - Extended Update Support
                     Red Hat Container Images Beta
                     Red Hat Ansible Automation Platform
                     Red Hat Enterprise Linux Atomic Host Beta
                     Red Hat JBoss Core Services
                     Red Hat Container Images
                     Red Hat Enterprise Linux Load Balancer (for RHEL Server)
                     Red Hat Developer Suite v.3
                     Red Hat CodeReady Workspaces for OpenShift
                     Red Hat OpenShift Enterprise JBoss EAP add-on
                     Red Hat Openshift Application Runtimes for IBM Power LE
                     Red Hat EUCJP Support (for RHEL Server) - Extended Update Support
                     Red Hat Enterprise Linux High Availability for x86_64
                     Red Hat Enterprise Linux Load Balancer (for RHEL Server) - Extended
                     Update Support
                     Red Hat Openshift Application Runtimes
                     Red Hat Enterprise Linux High Availability (for IBM z Systems) -
                     Extended Update Support
                     Red Hat Enterprise Linux Resilient Storage for x86_64 - Extended
                     Update Support
                     Red Hat Enterprise Linux High Availability for x86_64 - Extended
                     Update Support
                     Red Hat Enterprise Linux Server - Update Services for SAP Solutions
                     Red Hat JBoss Middleware
                     Red Hat Migration Toolkit
                     Red Hat Enterprise Linux High Performance Networking (for RHEL
                     Server)
                     Red Hat Enterprise Linux Scalable File System (for RHEL Server)
                     Red Hat Enterprise Linux High Performance Networking (for RHEL
                     Server) - Extended Update Support
                     Red Hat Enterprise Linux EUS Compute Node
                     RHEL for SAP - Update Services for SAP Solutions
                     Oracle Java (for RHEL Server) - Extended Update Support
                     Red Hat Enterprise Linux Atomic Host
                     OpenJDK Java (for Middleware)
                     JBoss Operations Network from RHUI
                     Red Hat JBoss AMQ Clients
                     Red Hat 3scale API Management Platform
                     Red Hat Software Collections Beta (for RHEL Server)
                     Red Hat Enterprise Linux Server
                     Red Hat Enterprise Linux for SAP Applications for x86_64
                     Red Hat Enterprise Linux for x86_64 - Extended Update Support
                     RHEL for SAP - Extended Update Support
                     Red Hat Developer Toolset (for RHEL Server)
                     Red Hat Software Collections Beta (for RHEL Server for ARM)
                     Red Hat JBoss Core Services from RHUI
                     Red Hat Developer Tools Beta (for RHEL Server for ARM)
                     Red Hat OpenShift Enterprise JBoss FUSE add-on
                     Red Hat Build of Quarkus
                     Red Hat OpenShift Enterprise JBoss EAP add-on Beta
SKU:                 RH00798
Contract:            
Pool ID:             2c9280817a7d8db6017ab9bdb6281e5b
Provides Management: No
Available:           16
Suggested:           1
Service Type:        
Roles:               Red Hat Enterprise Linux Server
                     Red Hat Enterprise Linux Workstation
                     Red Hat Enterprise Linux Compute Node
Service Level:       Self-Support
Usage:               Development/Test
Add-ons:             
Subscription Type:   Standard
Starts:              07/18/2021
Ends:                07/18/2022
Entitlement Type:    Physical

Subscription Name:   60 Day Product Trial of Red Hat Enterprise Linux Server with Smart
                     Management, Monitoring, and all Add-Ons, Self-Supported (Physical or
                     Virtual Nodes)
Provides:            dotNET on RHEL Beta (for RHEL Server)
                     Red Hat Satellite
                     Red Hat CodeReady Linux Builder for x86_64
                     Red Hat Ansible Engine
                     Red Hat Enterprise Linux Scalable File System (for RHEL Server) -
                     Extended Update Support
                     Red Hat Container Images Beta
                     Red Hat Enterprise Linux Atomic Host Beta
                     Red Hat Container Images
                     Red Hat Enterprise Linux Load Balancer (for RHEL Server)
                     Red Hat Beta
                     Red Hat Enterprise Linux High Availability for x86_64
                     Red Hat Enterprise Linux Load Balancer (for RHEL Server) - Extended
                     Update Support
                     dotNET on RHEL (for RHEL Server)
                     Red Hat CodeReady Linux Builder for x86_64 - Extended Update Support
                     Red Hat Enterprise Linux Resilient Storage for x86_64 - Extended
                     Update Support
                     Red Hat Enterprise Linux High Availability for x86_64 - Extended
                     Update Support
                     Oracle Java (for RHEL Server)
                     Red Hat Enterprise Linux Resilient Storage for x86_64
                     Red Hat Software Collections (for RHEL Server)
                     Red Hat Satellite Capsule
                     Red Hat Enterprise Linux High Performance Networking (for RHEL
                     Server)
                     Red Hat Enterprise Linux Scalable File System (for RHEL Server)
                     Red Hat Enterprise Linux High Performance Networking (for RHEL
                     Server) - Extended Update Support
                     Oracle Java (for RHEL Server) - Extended Update Support
                     Red Hat Enterprise Linux Atomic Host
                     Red Hat Developer Tools (for RHEL Server)
                     Red Hat Software Collections Beta (for RHEL Server)
                     Red Hat Enterprise Linux Server
                     Red Hat Developer Tools Beta (for RHEL Server)
                     Red Hat Enterprise Linux for x86_64
                     Red Hat Enterprise Linux for x86_64 - Extended Update Support
                     Red Hat Developer Toolset (for RHEL Server)
SKU:                 RH00066
Contract:            12738638
Pool ID:             8a85f99f7aaf7dc9017ab861e8f33915
Provides Management: Yes
Available:           2
Suggested:           1
Service Type:        
Roles:               Red Hat Enterprise Linux Server
Service Level:       Self-Support
Usage:               Development/Test
Add-ons:             
Subscription Type:   Instance Based
Starts:              07/18/2021
Ends:                09/16/2021
Entitlement Type:    Physical

$ sudo subscription-manager subscribe --pool=8a85f99f7aaf7dc9017ab861e8f33915
Successfully attached a subscription for: 60 Day Product Trial of Red Hat Enterprise Linux Server with Smart Management, Monitoring, and all Add-Ons, Self-Supported (Physical or Virtual Nodes)

$ sudo subscription-manager list
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
Product Name:   Red Hat Enterprise Linux for x86_64
Product ID:     479
Version:        8.4
Arch:           x86_64
Status:         Subscribed
Status Details: 
Starts:         07/18/2021
Ends:           09/16/2021

以上により、yum が可能になります

$ sudo yum install samba
Updating Subscription Management repositories.
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)      17 MB/s |  34 MB     00:02    
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)   16 MB/s |  31 MB     00:01    
Dependencies resolved.
==========================================================================================
 Package               Arch      Version           Repository                        Size
==========================================================================================
Installing:
 samba                 x86_64    4.13.3-3.el8      rhel-8-for-x86_64-baseos-rpms    846 k
Installing dependencies:
 avahi-libs            x86_64    0.7-20.el8        rhel-8-for-x86_64-baseos-rpms     62 k
 cups-libs             x86_64    1:2.2.6-38.el8    rhel-8-for-x86_64-baseos-rpms    433 k
 libicu                x86_64    60.3-2.el8_1      rhel-8-for-x86_64-baseos-rpms    8.8 M
 libwbclient           x86_64    4.13.3-3.el8      rhel-8-for-x86_64-baseos-rpms    119 k
 samba-client-libs     x86_64    4.13.3-3.el8      rhel-8-for-x86_64-baseos-rpms    5.4 M
 samba-common          noarch    4.13.3-3.el8      rhel-8-for-x86_64-baseos-rpms    218 k
 samba-common-libs     x86_64    4.13.3-3.el8      rhel-8-for-x86_64-baseos-rpms    171 k
 samba-common-tools    x86_64    4.13.3-3.el8      rhel-8-for-x86_64-baseos-rpms    498 k
 samba-libs            x86_64    4.13.3-3.el8      rhel-8-for-x86_64-baseos-rpms    168 k

Transaction Summary
==========================================================================================
Install  10 Packages

Total download size: 17 M
Installed size: 58 M
Is this ok [y/N]: y
Downloading Packages:
<以降、省略>

urlの変化なしに画面遷移する場合において google analytics の UA(Universal Analytics) で Conversion通知

世の中、GA4への移行が進みつつありますが、 以下は前バージョンである UA(Universal Analytics analytics.js)の 内容です。

google analyticsUA(Universal Analytics) において コンバージョンの目標(到達ページ)を次のように指定した場合、 ブラウザで指定urlにアクセスすることで、GAにコンバージョンが通知されます。

f:id:end0tknr:20210718142409p:plain

ですが、入力→確認→完了のurlが変わらず、ページ遷移するような画面では、 以下のように ga('create',~); と ga('send','pageview',~); を呼ぶことで、 アクセスした(コンバージョンした)と見なしてくれるらしい。

<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
    
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){
w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});
var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='
    +l:'';j.async=true;j.src=
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-ないしょ');
</script><!-- End Google Tag Manager -->
</head>

<body>

<form>
  <div class="mb-3">
     <label for="exampleInputEmail1" class="form-label">Email address</label>
     <input type="email" class="form-control" id="exampleInputEmail1"
            aria-describedby="emailHelp"/>
     <div id="emailHelp" class="form-text">
       We'll never share your email with anyone else.</div>
  </div>

<button type="button" class="btn btn-primary"
        onClick="done_contact();">Submit</button>
</form>
          
<script>
function done_contact(){
  var dummy_path = location.pathname + '?status=comp';
  ga('create','UA-ないしょ-3','auto');
  ga('send', 'pageview', {'page': dummy_path});
}
</script>

</body>
</html>

php で csvな文字列を作成

<?php
$row = [ "foo","bar","ho,ge"];

$memory = 'php://memory';
$mp = fopen($memory, 'bw+');
fputcsv($mp, $row);
rewind($mp);
echo stream_get_contents($mp);

↑こう書くと、↓こう表示されます。

$ php ./foo.php
foo,bar,"ho,ge"

GA4 (Google Analytics 4)で、旧 Universal Analytics も使用する

Google Analytics 4 は、2019年のβ版公開後、2020年10月に正式リリースされました。

2021年7月現在、 GA4による gtag.js と、旧 Universal Analytics による analytics.js の両方を 利用できるようですが、それぞれ別プロパティとなる仕様のようです。

ちなみに、新GA4と、旧UAの新規プロパティを同時作成する場合は以下の通り。

STEP1 - プロパティ作成画面で「詳細オプションを表示」

f:id:end0tknr:20210715073150p:plain

STEP2 - ユニバーサル アナリティクスプロパティ 欄を入力

f:id:end0tknr:20210715073200p:plain

STEP3? - GA4と、UA の2コのプロパティが完成

f:id:end0tknr:20210715073041p:plain

その他

GA4のプロパティでは、UAにあった「ビュー」画面がないので、 最初、少々、戸惑います。

responsive html の template

といっても、dotinstallのコピペ

html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>My Site</title>
  <link rel="stylesheet" href="css/styles.css">
</head>
<body>
  <section>
    <div class="image">image</div>
    <div class="text">text</div>
    <aside>ad</aside>
  </section>
</body>
</html>

css

/* common */
/* small screen */
body {
  margin: 0;
}

aside {
  display: none;
}

.image {
  background: pink;
  height: 100px;
}

.text {
  background: silver;
  height: 100px;
}

/* medium screen */
@media (min-width: 600px) {
  section {
    display: flex;
  }

  .image {
    width: 200px;
  }

  .text {
    flex: 1;
  }
}

/* large screen */
@media (min-width: 800px) {
  section {
    width: 800px;
    margin: 0 auto;
  }

  aside {
    display: block;
    background: plum;
    width: 160px;
  }
}

sql select の結果を縦に表示 - mysqlはsql文末に「\G」postgresは実行前に「\x」

mysqlの「\G」は使用したことがありましたが、 postgresの「\x」は使用したことがなかった為、メモ

mysqlの場合

mysql> select kyoten_id, reg_name, reg_date from user_mst limit 3;
+-----------+-----------+---------------------+
| kyoten_id | reg_name  | reg_date            |
+-----------+-----------+---------------------+
|         1 | end0tknr1 | 2021-05-12 00:00:00 |
|         1 | end0tknr2 | 2021-05-12 00:00:00 |
|         1 | end0tknr5 | 2021-05-16 19:41:55 |
+-----------+-----------+---------------------+
3 rows in set (0.00 sec)

mysql> select kyoten_id, reg_name, reg_date from user_mst limit 3\G
*************************** 1. row ***************************
kyoten_id: 1
 reg_name: end0tknr1
 reg_date: 2021-05-12 00:00:00
*************************** 2. row ***************************
kyoten_id: 1
 reg_name: end0tknr2
 reg_date: 2021-05-12 00:00:00
*************************** 3. row ***************************
kyoten_id: 1
 reg_name: end0tknr5
 reg_date: 2021-05-16 19:41:55
3 rows in set (0.00 sec)

postgresの場合

postgres=> \x
Expanded display is off.
db_rear_hon=> select * from test_tbl limit 3;
 id | val 
----+-----
  0 | あ
  1 | 髙
  2 | ㎡
(3 rows)

postgres=> \x
Expanded display is on.
db_rear_hon=> select * from test_tbl limit 3;
-[ RECORD 1 ]
id  | 0
val | あ
-[ RECORD 2 ]
id  | 1
val | 髙
-[ RECORD 3 ]
id  | 2
val | ㎡

GitHub Pages の はじめ方

githubによる 以下の GitHub Pages 説明ページはありますが、文字ばかりですので、入門的にメモ。

docs.github.com

【目次】

User Site と Project Site の url例

GitHub Pages には、

アカウント毎に1コだけ作成できる User Siteと、 プロジェクト毎に複数作成できる Prject Site があり、 それぞれの url は、以下のようになります。

type url例
User https://$username.github.io
Project https://$username.github.io/$pj-name-1
https://$username.github.io/$pj-name-_2

User Site の はじめ方

STEP1 - $username.github.io のリポジトリ作成

以下の手順で、$username.github.io というリポジトリを作成して下さい。

f:id:end0tknr:20210713060721p:plain

▼▼▼▼

f:id:end0tknr:20210713060735p:plain

STEP2 - html等のfile uploadと commit

以下の手順で、ドラッグ&ドロップによるアップロードや、コミットを行って下さい。

f:id:end0tknr:20210713061027p:plain

▼▼▼▼

f:id:end0tknr:20210713061036p:plain

STEP3 - settings GitHub Pages

後程、記載する Project Site と異なり、 User Siteでは、defaultで設定済ですので、作業不要です。

STEP4 - https://$username.github.io の表示確認

(ファイルのコミット後、実際に表示されるまで、時間を要する場合もありますが) 後は、https://$username.github.io/ へ、アクセスし、表示を確認下さい。

Project Site の はじめ方

先程の User Site の手順とほぼ同様ですので、異なる部分のみ記載します。

STEP1 - $pj-name-1 のリポジトリ作成

User Site では、$username.github.io というリポジトリ名のルールがありましたが プロジェクトサイトでは任意の名称で構いません。

STEP2 - html等のfile uploadと commit

先頬の User Site の手順と同様ですので、省略します。

STEP3 - html等のfile uploadと commit

settings から、Pages へ遷移し、公開対象のBranchを選択して下さい。

f:id:end0tknr:20210713061051p:plain

STEP4 - https://$username.github.io/$pj-name-1/ の表示確認

先頬の User Site の手順と同様ですので、省略します。

find の -regextype -regex による正規表現利用

例えば、.log , .bak で終わらないファイル名を検索する場合、以下

$ find /path/to/dir/ -type f ! -regex '.*\.\(log\|bak\|~\)'

↑こう  or ↓こう

$ find /path/to/dir/ \
   -type f -regextype posix-basic ! -regex ".*.log$" ! -regex ".*.bak$"

python or php におけるビルトインwebサーバ起動 - build-in httpd server

忘れるので、メモ。

お手軽に利用できるのは、pythonphpperlの場合、「moduleインストール要」や「コマンドが長い点」から、今回パス

python

$ python3 -m http.server 8080

php

$ php -S 192.168.56.101:8080

diff & find & ssh & cat for linux で、サーバ間のファイル差分を確認

↓こんな感じかと思います

#!/bin/bash

target_dirs=(
  "/export/prj/prj0X/conf/"
  "/export/prj/prj0X/lib/"
)

for target_dir in "${target_dirs[@]}" ; do
  echo "######## ${target_dir}" 

  for p in `find ${target_dir} -type f -print` ; \
    do echo "#### ${p}"; \
    ssh -i /home/end0tknr/.ssh/new_helm_com_priv_key.pem helm@54.???.???.??? \
    "cat ${p}" | diff ${p} -; \
  done
  
  sleep 5
done

wget --spider --mirror と grep --perl-regexp --only-matching でサイトにあるurlの一覧作成

↓こんな感じかと思います

#!/bin/bash

sites=(
 "ないしょ.com"
 "ないしょ.jp"
)

for site in "${sites[@]}" ; do
    echo "${site}"

    wget --spider --mirror --accept-regex=htm http://${site} 2>&1 | \
      grep --perl-regexp "\-\-\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d\-\-" \
      > url_list_tmp

    grep --perl-regexp --only-matching "http.+" url_list_tmp | sort | uniq > \
    url_list_${site}

    sleep 2
done

ssh -i の鍵付きで remote host へ rsync

以下の通りで、ポイントは

  • rsync用userを作成し、かつ、rsync は、NOPASSWD とする
  • 通常のrsyncに加え、オプションをゴニョゴニョ追加する

ポイント1 - rsync用userを作成し、かつ、rsync は、NOPASSWD とする

$ ssh -i ~/.ssh/end0tknr_202008.pem ec2-user@ないしょID

$ sudo adduser rsyncadm
$ sudo passwd  rsyncadm

/home/ec2-user/.ssh/authorized_keys を copy


$ sudo /etc/sudoers.d/90-cloud-init-users
rsyncadm ALL=(ALL) NOPASSWD:/usr/bin/rsync

ポイント2 - 通常のrsyncに加え、オプションをゴニョゴニョ追加する

$ rsync --verbose \
      --bwlimit=2048 \
      --archive \
      --update \
      -e "ssh -i ~/.ssh/end0tknr_202008.pem" \
      --rsync-path="sudo rsync" \
      Sublist3r rsyncadm@ないしょIP:/home/ec2-user/tmp/

その他 参考

【 rsync 】コマンド(その1)――ファイルやディレクトリを同期する:Linux基本コマンドTips(82) - @IT