ターミナルのショートカット
よく使うターミナルのショートカット
カーソル位置から行頭まで削除
CTRL + u
カーソル位置から行末まで削除
CTRL + k
単語単位で削除
CTRL + w
スクリーンクリア
CTRL + l
単語単位で戻る
ESC + b
単語単位で進む
ESC + f
行頭へ移動
CTRL + a
行末へ移動
CTRL + e
履歴を検索(インクリメンタルサーチ)
CTRL + r
実行中は
別のものを探す
CTRL + r
戻る
CTRL + g
tds_fdwのインストール
Installing on CentOSのページを見てインストールしました。
EPELをインストール
yum install epel-release
TDSをインストール
yum install freetds freetds-devel
alpha版を除くと20180528現在は1.08が最新でした。2016のだけど。
export TDS_FDW_VERSION="1.0.8"
PostgreSQLはバージョン9.6にしています。
export POSTGRES_VERSION="9.6"
wget https://github.com/tds-fdw/tds_fdw/archive/v${TDS_FDW_VERSION}.tar.gz -O tds_fdw-${TDS_FDW_VERSION}.tar.gz tar -xvzf tds_fdw-${TDS_FDW_VERSION}.tar.gz cd tds_fdw-${TDS_FDW_VERSION} PATH=/usr/pgsql-{POSTGRES_VERSION}/bin:$PATH make USE_PGXS=1 sudo PATH=/usr/pgsql-{POSTGRES_VERSION}/bin:$PATH make USE_PGXS=1 install
\dxでインストールしたEXTENSIONを確認出来ます。
続いてpostgresの設定です。
psqlで作業します。
postgres=# create extension tds_fdw; CREATE EXTENSION
servernameはsql serverがインストールされているサーバを適宜記載
postgres=# create server TDS_TestDB foreign data wrapper tds_fdw options (servername 'localhost', port '1433', database 'TestDB', tds_version '4.2', character_set 'UTF-8'); CREATE SERVER
grantする
postgres=# grant usage on foreign server TDS_TestDB to postgres; GRANT
sql serverの情報を記載
postgres=# create user mapping for postgres server TDS_TestDB options (username 'sa', password 'password'); CREATE USER MAPPING
sql serverのほうはMicroSoftのページの情報でテーブルを作っているとするとPostgreSQL側では下記の指定になります。
create foreign table t1 (id integer, name VARCHAR(50), quantity integer) server TDS_TestDB options (table 'Inventory');
下記サイトを参考にしました。
tdsのインストール
https://github.com/tds-fdw/tds_fdw
PostgreSQLの設定
https://www.openscg.com/bigsql/docs/tds_fdw/
MicroSoft
https://docs.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-red-hat?view=sql-server-linux-2017
リバースSSHポートフォワーディング
以下、自宅を会社と読み替えても差し支えありません。
外出先のPCから自宅のwindowsにリモートデスクトップしたい時があります。
VPNサーバたてて接続するとか色々手段があるんですが今回は
リバースSSHポートフォワーディングして実現したいと思います。
やることは2つです
・自宅のLinuxからVPSのLinuxに向けてトンネル
・外出先PCからVPSのLinuxに向けてトンネル
自宅のLinuxからVPSのLinuxに向けてトンネルを掘る
自宅のWindowsのIPアドレス:192.168.1.100
自宅のWindowsのRDP待受ポート:3389
VPSのLinuxの転送ポート:13389
VPSのドメイン名:vps.com
VPSのSSH待受ポート:10022
ssh -N -R 13389:192.168.1.100:3389 vps.com -p 10022
ファイルディスクリプタ 2>&1
よく見かける2>&1の意味、ググらずにすぐに答えることは出来ますか?
標準エラー出力を標準出力にマージするという意味です。
何度も調べたことがあるかと思いますが、いきなり質問されるとどきっとしてしまいます。
標準入出力のファイルディスクリプタ 0→標準入力 1→標準出力 2→標準エラー出力
プロセスを実行すると上記のファイルディスクリプタが作成されます。
まずはpidを確認
ps aux | grep httpd
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 17762 0.0 1.1 367636 12148 ? Ss Feb18 3:10 /usr/sbin/httpd
pidは17762と確認出来ました。
ファイルディスクリプタを確認します。
/proc/17762/fd配下にファイルディスクリプタがあります。
ls -l /proc/17762/fd
lr-x------ 1 root root 64 Mar 21 20:14 0 -> /dev/null l-wx------ 1 root root 64 Mar 21 20:14 1 -> /dev/null l-wx------ 1 root root 64 Mar 21 20:14 10 -> /var/log/httpd/access_log l-wx------ 1 root root 64 Mar 21 20:14 11 -> /var/log/httpd/ssl_access_log l-wx------ 1 root root 64 Mar 21 20:14 12 -> /var/log/httpd/ssl_request_log lr-x------ 1 root root 64 Mar 21 20:14 13 -> /dev/urandom l-wx------ 1 root root 64 Mar 21 20:14 2 -> /var/log/httpd/error_log lrwx------ 1 root root 64 Mar 21 20:14 3 -> socket:[3608670] lrwx------ 1 root root 64 Mar 21 20:14 4 -> socket:[3608671] lrwx------ 1 root root 64 Mar 21 20:14 5 -> socket:[3608674] lrwx------ 1 root root 64 Mar 21 20:14 6 -> socket:[3608675] lr-x------ 1 root root 64 Mar 21 20:14 7 -> pipe:[3608682] l-wx------ 1 root root 64 Mar 21 20:14 8 -> pipe:[3608682] l-wx------ 1 root root 64 Mar 21 20:14 9 -> /var/log/httpd/ssl_error_log
httpdは標準出力は/dev/nullなので読み捨て、標準エラー出力は/var/log/httpd/error_log
となっているようです。
コマンド > /dev/null > 2>&1
これは標準エラー出力を標準出力にマージして読み捨てるということらしいです。
meltdownとSpectreの対応
CentOS6系のサーバで対応を行ってみました。
CVE-2017-5715
CVE-2017-5753
CVE-2017-5754
Spectreは幽霊とか怖いものといった意味だそうです。
現在のカーネルバージョンを確認
# uname -r
2.6.32-642.3.1.el6.x86_64
随分と古そうです。
早速更新処理
# yum update
完了したら再起動します。
# shutdown -r now
再起動後にバージョンを確認
2.6.32-696.18.7.el6.x86_64
MeltDown対策済みのバージョンになりました。
念の為以下も実行して確認。
# rpm -q --changelog kernel | egrep 'CVE-2017-5715|CVE-2017-5753|CVE-2017-5754'
数十のパッチが確認できました。
今回のアップデートと直接関係無いのですが、再起動後にsshだけ接続なくなってしまいました。
ポートを変更していたんですが、そのポートが空いて居ないようです。
iptablesの設定後に保存をしていなかったようです。
# service iptables save
iptablesの設定後は保存を忘れずに。
以下脆弱性の情報