コンテンツへスキップ

最近スクリプトを作成することが増えてきたけども、毎回フルパスで指定するの面倒くさい。
なので、スクリプト名を打つだけで実行できるようにしたかった。

今回は下記ファイルを用意した
/root/cmd/test 
echo "test"

方法1 .bash_profile 内のexportにパスを記載する。



vim .bash_profile
export PATH=$HOME/cmd:$PATH
# test
test

方法2 /usr/local/bin 以下にシンボリックリンクを追加する。

# ln -s ~/cmd/test /usr/local/bin/tes
# tes
test

上記の方法は環境変数$PATH内にパスがあれば、
CUI内でコマンドを探して実行してくれるというルールの上で成り立っているらしい。
ちなみに 
/bin/はシングルモード用(OSが壊れてときとか)
/usr/bin/はシングルモードではないかつ、RPM等のパッケージに入っているコマンド等が収納
/usr/local/binは自作スクリプトなどを置くディレクトリ
なので今回は上記の記載をした。

最近LXCばかり触っていたのでホストからゲストOSを設定できるスクリプトをかいてみた。
ネットワークとSSH公開鍵認証の設定。sshは内容軽くいじれば他でも使いまわせそう。
OSはcentos7.9を想定

#network config
rm /var/lib/lxc/$1/rootfs/etc/sysconfig/network-scripts/ifcfg-eth0
lxc-attach -n $1 -- bash -c 'echo "DEVICE=eth0" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
lxc-attach -n $1 -- bash -c 'echo "BOOTPROTO=none" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
lxc-attach -n $1 -- bash -c 'echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
lxc-attach -n $1 -- bash -c 'echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
lxc-attach -n $1 -- bash -c 'echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
lxc-attach -n $1 -- bash -c 'echo "IPADDR='$1'" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
lxc-attach -n $1 -- bash -c 'echo "NETMASK='$2'" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
lxc-attach -n $1 -- bash -c 'echo "GATEWAY='$3'" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
lxc-attach -n $1 -- bash -c 'echo "DNS1=8.8.8.8" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
lxc-attach -n $1 -- bash -c 'echo "DNS1=8.8.4.4" >> /etc/sysconfig/network-scripts/ifcfg-eth0'
lxc-attach -n $1 systemctl restart network
#ssh config
lxc-attach -n $1 -- yum -y install openssh-server
lxc-attach -n $1 -- ssh-keygen -N "" -f ~/.ssh/id_rsa
lxc-attach -n $1 mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
lxc-attach -n $1 chmod 600  ~/.ssh/authorized_keys
lxc-attach -n $1 -- sed -i 's/^PubkeyAuthentication.*$/PubkeyAuthentication yes/' /etc/ssh/sshd_config
lxc-attach -n $1 -- sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
lxc-attach -n $1 systemctl restart sshd
lxc-attach -n $1 cat ~/.ssh/id_rsa

個人的に下記行の引数を展開できないことに苦労した。
lxc-attach -n $1 -- bash -c 'echo "IPADDR='$1'" >> /etc/sysconfig/network-scripts/ifcfg-eth0'

シングルクォーテーションって強制的にすべて文字列にするものだと思ってるから
echo以降は全て文字列しかできない。
でもぐぐったら、むしろ$1の場所をシングルクォーテーションでさらに囲ったら変数扱いとなった。
なぜ


参考
sed-iについて
https://www.usupi.org/sysad/197.html

lxc-attachについて
https://gihyo.jp/admin/serial/01/linux_containers/0008?page=4

もうそろこのブログも開始してから1年が経とうとしている。
基本的にはITの忘備録ばかりが8割以上なのでその分の経験値を得られているはず。。
長く続いているのは記事のクオリティに気を使わないこと。気負うと投稿が億劫になるので

アクセスで人気があるものは、メールやzabbix等のエラーログを題名にしたものがヒットした。
例えばこの記事とか。みんな同じようなエラーで困ってるんだなあと思った。
https://roroing.net/?p=262

■その他
ipad pro 12.9インチを購入しました。
procriateのアプリでペンシルは2世代を使って絵をかいてます。
適当な姿勢で動画を見たり絵を描けるのは最高だ。。。

これはipadで描いたFF7のクラウド。


手軽に直線モードにできたり消しゴム切り替えたりすることができてよかったな。
あとテクスチャがたくさんそろってるのもいい。腕とか肩パッドなどにつけてます。

今後もipadで絵を描いていきたいところ。

タイトルの通り、データ移行を実施したけども詰まってしまったので記録する。
なお、WordPress内のデータを移行している


作業順序は次の通り。
1.pleskでドメイン>>「ドメインを追加」で新しいドメインを作成する。
2.作成したドメインからデータベースを作成する。
※ここでドメイン名やユーザー名を移転元の通りにするとエラーが発生したから名前を変更した。
あとでWordPressのコンフィグデータも変えておくこと。

3.移転元の「データベース」から「ダンプをエクスポート」を選択してバックアップを取得。
→「作成後にダンプを自動的にダウンロード」にチェックをつけると作業が楽になる
4.移転元の「ファイルマネージャー」からバックアップしたいファイルを項目の右側の設定からダウンロードする。

5.「ファイルマネージャー」でドキュメントルート以下にサブディレクトリ用の新規ディレクトリを作成する
6.新規ディレクトリ以下にファイルをアップロードする。 
7. 移転元の「データベース」から「ダンプをインポート」を選択してリストアする。
8.hosts,ファイルを変更するなどをして移転先のURLにアクセスしてサイトの調子を確認する。
9.画像が非表示されたりするはずなので、画像のパスを変更する。

今回は9で詰まった。
まずパスを変更する場所が見つからなかった。
一番早いのはssh接続から検索するのが手っ取りばやい。
私の場合は下記コマンドで検索をした。

ファイル内の文字列を検索してくれる

find . -type f -print | xargs grep 検索したいファイル名

今回上記を利用してヒットした箇所はWordPressのtheme以下のファイル内であった。

ちなみにssh接続できない場合、plesk内の「ファイルマネージャー」からファイルが編集できる
今回、これで終わりかと思ったけどサイト内でまだ表示がされないファイルがあったためにさらに詰まった。

サイト内で「ページのソースを表示」して、表示されない画像を検索すると確かにパスが変更されていなかった。
しかし、その画像の表示をさせるためのソースが実際にssh接続から探してもどこにもなかった。

結果的には、plesk内の「phpMyAdmin」からデータベース内を探して見つけた。
自分の場合は、**_posts テーブル内の値が「post_content」のところで画像を検索するとヒットした。

10.データベース内のファイルのパスを「検索と置換」で変更する
下の画像のように設定する。

実行ボタンを押してもその後、どの箇所が変更されるか確認できるページに遷移できる。

11. 改めてサイトを確認して問題がなければデータ移行完了。