XServerVPS SoftEtherVPNServer インストール

## CPU/Bit確認

cat /proc/cpuinfo | grep ‘model name’ | head -1
uname -m

## ダウンロード

cd /opt

wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.44-9807-rtm/softether-vpnserver-v4.44-9807-rtm-2025.04.16-linux-x64-64bit.tar.gz

## インストール

apt update
apt install gcc make libreadline-dev zlib1g-dev libssl-dev

tar -zxvf softether …
cd vpnserver
make

## パーミション

chmod 600 *
chmod 700 vpncmd
chmod 700 vpnserver

## サービス登録

vim /etc/systemd/system/vpnserver.service
以下、書き込み。

## 起動
systemctl daemon-reload
systemctl enable vpnserver
systemctl start vpnserver

## 終了
sudo systemctl stop vpnserver

## ポート開放
ufw allow from xxx to any port 5555 proto tcp

## Windowsのサーバー管理マネージャ

起動画面にて、新しい接続設定を実行
・接続設定名:XServerVPS
・ホスト名:IPアドレス
・ポート番号:5555

接続すると初回接続時のみ
管理者パスワード設定+簡易セットアップダイアログが開く。

・リモートアクセスVPNサーバー
をチェックし次へ

・仮想HUB名:VPN(そのまま)
と入力しOK。

・ダイナミックDNS機能
はそのまま変更なし。閉じる。

・IPsec/L2TP/EtherIP/L2TPv3サーバー機能の設定
はチェック無し(そのまま)でOK。

・VPN Azureクラウド
VPN Azureを無効にする
をチェックしOK。

1.ユーザーを作成する
をクリックし、ユーザー名とパスワードを入力してOK。

3.ローカルブリッジの設定
ではブリッジの設定しない。
閉じる。

簡易セットアップダイアログここまで。
ここからサーバー管理マネージャの通常画面で作業。

VPNをダブルクリック>仮想NATおよび仮想DHCPサーバー機能>
SecureNAT機能を有効にする>SecureNATの設定

NICを192.168.29.1とし、DHCP配布を192.168.29.10-200とする。
クライアントに割り当てるオプションの設定は空白にする。

Mattermostサーバー 更新(10.12.0)

https://docs.mattermost.com/product-overview/version-archive.html
から対象のダウンロードリンクを見つける

Boards更新

https://github.com/mattermost/mattermost-plugin-boards/releases
から、該当のファイル
mattermost-plugin-boards-v9.1.6-linux-amd64.tar.gz
をダウンロード。

システムコンソール>プラグイン管理からアップロード

 

RustDesk VPSインストール

※hbbrがリレーサーバー、hbbsがシグナルサーバー

Dockerインストール

VPSで稼働しているサービス整理(XserverVPS)

ufw

※ from xxx は省略可能
(ufw allow to any port 21116 proto tcp)
※ proto xxx は省略可能(tcp/udpが適用)
(ufw allow to any port 21116)
※ to any portを省略する場合、proto toも省略する省略記法(カンマ区切不可)
(ufw allow 21116/udp)

ufw allow to any port 21114,21115,21116,21117,21118,21119 proto tcp
ufw allow to any port 21116 proto udp

※以下が必要
21114(TCP)
21115(TCP)
21116(TCP/UDP)
21117(TCP)
21118(TCP)
21119(TCP)

コマンド

ufw status numbered
ufw delete 1
ufw reload

Docker

mkdir rustdesk
cd rustdesk
vim docker-compose.yml

docker compose up -d

クライアント

https://github.com/rustdesk/rustdesk/releases

設定>ネットワーク>認証サーバー/中継サーバーにIPアドレスを入れる
Keyの調べ方。
cd data
cat id_ed25519.pub

XserverVPS+Ubuntu+Docker Samba-DC

VPSで稼働しているサービス整理(XserverVPS)

Samba DC

今回は検証目的で、通常はVPSで直接Dockerを公開するような運用はNGで、VMを経由する。

●●●=利用環境のグローバルIPアドレス

・ufw

ufw allow from ●●● to any port 9922,3306,53,88,135,139,389,445,464,636,3268,3269,49152:49252 proto tcp
ufw allow from ●●● to any port 53,88,123,137:138,389,464 proto udp

・フォルダ作成

cd /home
mkdir samba
cd samba
mkdir data
mkdir config

chmod 700 data
chmod 700 config

Docker

vim docker-compose.yml

・もし再実行で既にコンテナがあるようだったら

docker ps -a
docker compose down
※カレントディレクトリにdocker-compose.ymlがある状態で実行

・通常終了しない場合
docker ps -a
docker rm -f コンテナID

・バインドボリューム削除
rm -rf ./data/* && rm -rf ./config/*

※再起動の場合
docker restart samba-dc

※一時停止の場合
docker pause samba-dc
docker unpause samba-dc

・起動

docker compose up -d
※カレントディレクトリにdocker-compose.ymlがある状態で実行
※dはバックグランド実行

・停止
※もし自動で再起動を繰り返している場合止める
docker stop samba-dc

・初回のみエラー

53ポートが使用中とのことでエラー。

lsof -i :53

vim /etc/systemd/resolved.conf
DNSStubListener
>no
に変更する。
systemctl restart systemd-resolved

SambaRPCポート変更

※直接変更する方法
docker exec -it samba-dc vi /etc/samba/smb.conf

rpc server dynamic port range = 49152-49172

rpc server dynamic port range = 49152-49252
に変更。

docker exec -it samba-dc supervisorctl restart samba

※ポートが多すぎるコンテナ生成で失敗する。(タイムアウトしてしまう)
ポートが少なすぎるとADの同期で問題が発生する。

エラー確認

journalctl -u docker
docker logs -f samba-dc
docker exec -it samba-dc tail -f /var/log/samba/log.smbd
docker exec -it samba-dc tail -f /var/log/ntp

NTP変更

docker logs samba-dc | grep ntp
でntp系のエラー確認

・ntpサーバー確認
docker exec -it samba-dc ntpq -p
現在のntpサーバー(*)を確認しping
docker exec -it samba-dc sntp xxx.xxx.xxx.xxx

/etc/ntp.conf or /etc/ntpd.conf
使用されている方の調べ方(ps aux | grep ntpd)
を編集する。

docker exec -it samba-dc vi /etc/ntpd.conf

server ntp.nict.jp iburst prefer
を追加し、
ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/

ntpsigndsocket /var/lib/samba/ntp_signd/
に変更する

docker exec -it samba-dc supervisorctl restart ntpd

・ntp.drift作成

docker exec -it samba-dc mkdir -p /var/lib/ntp
docker exec -it samba-dc touch /var/lib/ntp/ntp.drift
docker exec -it samba-dc chown ntp:ntp /var/lib/ntp
docker exec -it samba-dc chown ntp:ntp /var/lib/ntp/ntp.drift
docker exec -it samba-dc chmod 755 /var/lib/ntp
docker exec -it samba-dc chmod 664 /var/lib/ntp/ntp.drift

docker exec -it samba-dc supervisorctl restart ntpd

・一応確認

アクセス権限
cd /var/lib/ && ls -la
chown ntp:ntp /var/lib/ntp
chmod 755 /var/lib/ntp
になっていればOK。

ntpユーザがいるかどうか
id ntp

・usersharesフォルダ作成
docker exec -it samba-dc mkdir -p /var/lib/samba/usershares

SambaTool(DNS逆引き)

VPSアドレス[AAA.BBB.CCC.DDD]
から
samba-dc.xxx.local
を取得する方法

docker exec -it samba-dc samba-tool dns zonecreate localhost CCC.BBB.AAA.in-addr.arpa –username=administrator –password=xxx

docker exec -it samba-dc samba-tool dns add localhost CCC.BBB.AAA.in-addr.arpa DDD PTR samba-dc.xxx.local –username=administrator –password=xxx

docker exec -it samba-dc supervisorctl restart samba

Windowクライアント設定

Win11でNASにアクセスできなくなる対策と同じ設定。
(安全でないゲスト ログオン等)

ncpa.cpl
利用しているNICのDNSをVPSのIPアドレスにする。

sysdm.cpl
コンピュータ名タブ>変更
ドメインを選択しドメイン名を入力する。

ユーザーはadministrator
パスワードはdocker-compose
で指定したパスワードを入力する。

再起動したらログイン画面で
ドメイン名\administrator
のように入力しログインできる。初回ログイン時はかなり時間がかかる。

※アカウントもADに参加しないと以下コマンドは使えないが、このタイミングでローカルorMSアカウントを入力して、端末だけAD参加という状態も可能。

・Windows RSAT 有効化(ユーザー参加必須)

システム>オプション機能>機能表示>使用可能な機能を表示する
RSAT: ActiveDirectoryDomainServices およびライトウェイトディレクトリサービスツール
をチェックし追加すると、
Active Directory サイトとサービス
Active Directory ドメインと信頼関係
Active Directory ユーザーとコンピュータ
Active Directory 管理センター(Samba-DCでは利用不可)
が有効化される。

RSAT: グループポリシー管理ツール
をチェックし追加すると、
gpmc.msc
が有効化される。

・DNSが問題ないか確認する。

nslookup ドメイン
これでVPSのIPアドレスが返ってくればOK。

nslookup VPSのIPアドレス
これでドメイン名が返ってくればOK。

・接続状況(信頼関係)確認※管理者

nltest /sc_verify:ドメイン名
nltest /dsgetdc:ドメイン名

・時刻関係※管理者

w32tm /config /syncfromflags:domhier /update
※DCから取得に変更

w32tm /query /status
ソースを確認

w32tm /resync
同期実行

・gpupdate・

※コンピュータのみ更新場合
gpupdate /target:computer /force

エラーが発生した場合
eventvwr>アプリケーションとサービスログ>Microsoft>Windows>GroupPolicy
で確認する。

・\\xxx.local\sysvolアクセス時、このファイルは他のコンピュータから取得したものです。とついてしまう場合。

Win+R>inetcpl.cpl>セキュリティ>信頼済みサイト

\\xxx.local
を登録する。

・ドメインコントローラーへのポートテスト
Test-NetConnection “xxx.local” -Port 389

・接続テスト(ユーザダイアログ表示させる)

Test-ComputerSecureChannel -Repair -Verbose -Credential (Get-Credential)
※ドメイン\ユーザー名で入力する

・端末パスワードの更新
Reset-ComputerMachinePassword -Credential (Get-Credential)
※Smaba-DC内では、ユーザーと、端末、それぞれパスワードが存在するが端末のパスワードは自動で管理されユーザーが意識する必要はない。

※接続がうまくいかない場合sysdm.cplから一度抜けて再度登録すると直ることが多い。

・Win11ユーザープロファイルの削除

テストしているとプロファイルが多くできてしまう。
sysdm.cpl>詳細設定>ユーザープロファイル>設定
ここで不要なプロファイルを削除できる。

メモ:コンテナエントリポイントを調べて
スクリプトを追加する方法

※この方法だとinit.sh後の処理ができないので不採用。

・エントリポイントのスクリプトを調べる
docker exec -it samba-dc bash
cat /proc/1/cmdline

・作成

vim setup.sh

#!/bin/sh
sed -i ‘s|xxx|xxx|’ /etc/samba/smb.conf
sed -i ‘s|xxx|xxx|’ /etc/ntpd.conf

docker-composeで呼び出す。

volumes:
– ./setup.sh:/setup.sh
command: sh -c “/setup.sh && exec /init.sh”

メモ:シンボリックリンク

バインドしているexternalに保存
上記と同じように、エントリスクリプト内でcpできないエラーになる。

#!/bin/sh
ln -sf /etc/samba/external/smb.conf /etc/samba/smb.conf
ln -sf /etc/samba/external/ntpd.conf /etc/ntpd.conf

※lnコマンド
ln -sf [実体] [リンク]

ls -laの見え方
ntpd.conf(リンク) -> /etc/samba/external/my_ntpd.conf(実体)

メモ:Docker Network

docker network ls

・基本
xxx bridge bridge local
xxx host host local
xxx none null local

・削除方法
docker network rm samba_default

・種類
bridge
host:portsの設定は意味ない
macvlan:VPSだと難しい

メモ:SambaTool(DNSレコード)

・DBチェック
docker exec -it samba-dc samba-tool dbcheck –cross-ncs –fix –username=administrator –password=xxx

・ADに登録されている端末取得
docker exec -it samba-dc samba-tool computer list
docker exec -it samba-dc samba-tool computer show xxx

・ADに登録されているユーザー/PCリスト取得
docker exec -it samba-dc samba-tool user list
docker exec -it samba-dc samba-tool computer list

・PC追加

docker exec -it samba-dc samba-tool computer create PCNAME –user=administrator –password=xxx

・ゾーン一覧取得
docker exec -it samba-dc samba-tool dns zonelist localhost –username=administrator –password=xxx

xxx.localと_msdcs.xxxlocalが返ってくる。

・xxx.localのレコード一覧取得
docker exec -it samba-dc samba-tool dns query localhost xxx.local @ ALL –username=administrator –password=xxx

・_msdcs.xxx.localのレコード一覧取得
docker exec -it samba-dc samba-tool dns query localhost _msdcs.xxx.local @ ALL –username=administrator –password=xxx

・下位レコード取得
docker exec -it samba-dc samba-tool dns query localhost _msdcs.xxx.local gc ALL –username=administrator –password=xxx

・Aレコード削除
docker exec samba-dc samba-tool dns delete localhost xxx.local samba-dc A 172.19.0.2 -UAdministrator%xxx

・Aレコード登録
docker exec samba-dc samba-tool dns add localhost xxx.local samba-dc A サーバーIPアドレス -UAdministrator%xxx

メモ:アクセス制御リスト(ACL)

docker exec -it samba-dc samba-tool ntacl sysvolreset –username=administrator –password=xxx

docker exec -it samba-dc samba-tool ntacl sysvolcheck –username=administrator –password=xxx

docker exec -it samba-dc supervisorctl restart samba

・ACL権限関連リセット

samba-tool ntacl sysvolreset
samba-tool ntacl sysvolcheck

VPSで稼働しているサービス整理(XserverVPS)

安価なプランのIndigoVPSで色々なOSS運用していたが、1つにまとめることにした。今回はXserverVPS。すでにOSSは稼働状態なので、新しい環境と並行稼働してから切り替えることにした。

ssh

sudo vim /etc/ssh/sshd_config
Port
>9922

PasswordAuthentication
ChallengeResponseAuthentication
GSSAPIAuthentication
>no

sudo service ssh restart

ufw

※Xserverにもパケットフィルタがあるので要設定。

sudo vim /etc/default/ufw
>IPV6=no

sudo ufw allow from ●●●.●●●.●●●.●●● to any port 9922 proto tcp

sudo ufw enable
sudo ufw status

・メモ

削除
sudo ufw status numbered
sudo ufw delete [番号]

Docker

sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

MySQL

このMySQLは外部接続用で単独で使用。
今までは直接インストールしていたが今回はDocker。

sudo mkdir project_management
cd project_management

sudo mkdir data
sudo chown -R 999:999 ./data
sudo chmod 700 ./data

sudo mkdir conf.d
sudo chown -R 999:999 ./conf.d
sudo chmod 700 ./conf.d

sudo vim docker-compose.yml

sudo docker compose up d

cd conf.d
sudo touch external.cnf
sudo chown 999:999 external.cnf
sudo chmod 644 external.cnf

sudo vim external.cnf
[mysqld]
bind-address = 0.0.0.0
require_secure_transport = ON

sudo docker restart production_management

sudo ufw allow from ●●●.●●●.●●●.●●● to any port 3306 proto tcp
※Xserverのパケットフィルタも要設定。

dataフォルダの
client-cert.pem
client-key.pem
ca.pem
をダウンロード。

・pfx作成

pass=$(head /dev/urandom | tr -dc a-km-np-z1-9 | head -c 13);openssl pkcs12 -export -inkey client-key.pem -in client-cert.pem -out client.pfx -passout pass:${pass};echo $pass;

メモ

コンテナ一覧
sudo docker ps

コンテナに入る
docker exec -it production_management bash

コンテナ再起動
sudo docker restart production_management

コンテナ削除
sudo docker rm -f production_management

MySQL設定ファイル
/etc/my.cnf

MySQL Workbench

Standard TCP/IPを選択。

・Parametersタブ
Hostname:IPアドレス
Port:3306
Username:DBユーザー
パスワード:DBパスワード

・SSLタブ
Use SSL:Require and Verify CA
SSL Key File:client-key.pem
SSL CERT File:client-cert.pem
SSL CA File:ca.pem
ダウンロードしたファイルを選択。登録後ファイルの移動はできない。

これでVPS上のDockerのMySQLに外部から接続することが可能。

MySQLバックアップ

cd /home/project_management
sudo mkdir backup
sudo chmod 700 backup

sudo vim backup.sh

weekday=date +%w
f=/home/project_management/backup/dump_${weekday}.sql
docker exec production_management mysqldump –single-transaction -u root -p●●● project_management > $f

sudo chmod 700 backup.sh

・cron

cd /etc/cron.d
sudo vim /etc/cron.d/mysql_backup

0 2 * * * root /home/project_management/backup.sh

sudo chmod 600 mysql_backup

sudo systemctl status cron

Indigo(Ubuntu)でCaddy+Docker(MeshCentral)環境構築

Vaultwardenで利用したVPSに追加の別サブドメインでMeshCentralをインストールしてみる。

・Azure DNSゾーン

対象のドメインを選択
>+子ゾーン
>確認および作成
>作成

作成されたゾーンを選択

Aレコードに、sub.domainを追加する。
>レコードセット
>+追加
種類:A
IPアドレス:対象のアドレス
として作成。

・caddy

取得できているかどうか

・Docker

・MeshCentral

・ダウンロードしたAgentのwss://domain:port/agent.ashxが以下で変わる。
AgentPortは、portの部分、Certはdomainの部分。
ここでCertを指定しないとLANだけの動作になる。

●Agent

・MeshCentral>ログインしてアカウントを作成
・デバイスグループを作成>デバイスを作成
・Agentインストーラーをダウンロード>実行
・プログラムフォルダに作成されたプログラムを起動し、インストール
※インストーラーが起動しない場合、
システム>オプション機能>機能を表示>
WMICを追加する

●メモ

再起動する場合

sudo docker compose restart meshcentral
sudo docker compose restart meshcentral-db

・エラー発生した場合

コンテナID確認
sudo docker ps

コンテナ停止
sudo docker container stop コンテナID

コンテナを削除
sudo docker rm コンテナID

ログ
sudo docker logs コンテナID

Indigo(Ubuntu)でCaddy+Docker(Vaultwarden)環境構築

・Indigoで新規インスタンスを生成

Ubuntu 24.04
2vCPU/2GB/40GB

・TeraTermからSSHアクセス

・Docker

・Docker Compose

・DNS設定

Azure>DNSゾーン>+子ゾーン
名前のところにサブドメインにしたい値を入れて、確認及び作成

作成したサブドメイン付きのドメインのレコードセットを編集
AレコードでVPSのIPアドレスを指定

・Caddy

・Vaultwarden

これでhttps://sub.domainでアクセスできる。

・ufw

sudo vim /etc/default/ufw
IPV6=no

・ssh
sudo vim /etc/ssh/sshd_config

・PasswordAuthentication
・ChallengeResponseAuthentication
・GSSAPIAuthentication
3つともnoへ

・Dockerコマンドメモ

全てのコンテナ
sudo docker compose ps -a

全てのコンテナストップ
sudo docker stop $(sudo docker ps -q)

全てのコンテナ削除
sudo docker container prune

・Caddyメモ

caddy設定ファイル

 

CentOS(ConoHa) Mattermostテンプレート

ConoHa設定

実験のため、ConoHa メモリ1GBプランでMattermostのテンプレートを立ち上げてみた。

SSHキー設定し忘れたのでrootパスワードを利用し、TeraTermから接続。

MuuMuu + Xserver 独自ドメイン

CentOS(ConoHa) 初期設定 LAMP

SSH接続とファイアーウォール設定あたりを実行。

Mattermostの設定

ブラウザからアクセスし、メールアドレス、ユーザー名、パスワードを決め、チーム(Create a team)を作成する。ここで、チーム名とURLを決める。

・日本語化

メニュー>Account Settings>Display>Language
日本語に変更

システムコンソール>言語>
デフォルトのサーバー言語、デフォルトのクライアント言語の2つを
日本語に変更

・トークン発行

システムコンソール>統合機能管理
パーソナルアクセストークンを有効にする

メニュー>アカウントの設定>セキュリティ>パーソナルアクセストークン
トークンを生成する

C#にてRestAPIを利用するサンプル

Ubuntu Rocket Chatインストール

同じようなソフトのRocketChatの場合。
少し操作してみただけで利用していない。

・インストール

snap install rocketchat-server

・ufw

ufw allow 3000/tcp
ufw reload

・アンイストール

snap remove rocketchat-server

・ufw

ufw status numbered(番号確認)
ufw delete 番号
ufw reload

CentOS(ConoHa) 初期設定 LAMP

久しぶりにConoHaにてCentOSのインスタンスを作成。

コントロールパネル

インスタンス作成時、SSH Keyだけ作成し、その他はデフォルトのまま。

左側メニューのサーバー>インスタンスのネームタグ
クリックすると詳細が見れるので、IPアドレスを確認する。

公開鍵で、TeraTermとWinSCPで接続できるように設定する。

Ubuntu セキュリティ関連設定

Apache

インストールされているか
yum list installed | grep httpd

インストール
yum -y install httpd

状態
service httpd status

起動(初期設定ではスタートアップしない)
service httpd start
OR
systemctl start httpd

スタートアップ設定
systemctl enable httpd

パス
/var/www/html
/etc/httpd/conf/httpd.conf

ファイアーウォール設定
firewall-cmd –add-service=http –permanent
firewall-cmd –reload

PHP

・インストール

何が入っているか確認する場合。
yum list installed | grep php

PHP関連のパッケージを削除する場合。
yum remove php-*

個別で何が入るか。

yum -y install php
php.x86_64
php-cli.x86_64
php-common.x86_64
php-fpm.x86_64

yum -y install php-devel
php-devel.x86_64

yum -y install php-pdo
php-pdo.x86_64

yum -y install php-gd
php-gd.x86_64

yum -y install php-mbstring
php-mbstring.x86_64

yum -y install php-mysqlnd
php-mysqlnd.x86_64

yum install php-json
php-json.x86_64

実際は、
yum -y install php php-devel php-pdo php-gd php-mbstring php-mysqlnd
のようにする。

必要な場合下記等も追加。
php-xml.x86_64
php-xmlrpc.x86_64
php-pecl-mcrypt.x86_64
php-pecl-mysql.x86_64

・Apacheの再起動

systemctl restart httpd

MySQL

・MariaDBの削除
sudo yum remove mariadb-libs
sudo rm -rf /var/lib/mysql

・リポジトリの追加
sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

・MySQLのインストール
sudo yum install mysql-community-server

・バージョン確認
mysqld –version

・起動
sudo systemctl start mysqld.service

・自動起動
sudo systemctl enable mysqld.service

・rootのパスワード設定

pass=$(head /dev/urandom | tr -dc a-km-np-z2-9 | head -c 13); sudo mysql -u root -e “alter user root@localhost identified by ‘${pass}'”; echo $pass;

・文字コード変更

/etc/my.cnf
の中で以下のように修正。

[mysqld]
character-set-server = utf8
default_password_lifetime = 0

再起動
sudo systemctl restart mysqld.service

・MySQL Workbench

基本的に操作はWorkbenchから。

今回は外部にポート開けていないので、SSHポートフォワーディングで接続。

・Connection Method:Standard TCP/IP over SSH
・SSH Hostname:サーバーIPアドレス
・SSH User:root
・SSH Key File:鍵ファイル
・MySQL Hostname:127.0.0.1
・MySQL Server Port:3306
・Username:root
・Password:MySQLのrootパスワード

このような感じ。

WordPress

cd /var/www/html
sudo curl -LO http://ja.wordpress.org/latest-ja.tar.gz
sudo tar xzf latest-ja.tar.gz
sudo mv wordpress blog
cd blog
sudo cp wp-config-sample.php wp-config.php
sudo vim wp-config.php

以下を設定

define(‘DB_NAME’, ‘wpd’);
define(‘DB_USER’, ‘wpd_user’);
define(‘DB_PASSWORD’, ‘+6xya6=)RKn2+6xya6=)RKn2’);

apache用

sudo chown -R apache:apache /var/www/html/blog

最終処理

http://192.168.102.6/blog/wp-admin/install.php
にアクセス。

Ubuntu MySQLバックアップ(cron,rsync)

cron

以下の3つの方法がある。

***

cd /etc/cron.d

拡張子がないファイルを直接保存する。
rootで644にする。

・記述方法

分 時 日 月 曜日 実行ユーザ 実行コマンド
となる。

(-)ハイフンでつなげて範囲を指定することもできるし、(,)カンマで区切って複数指定することもできる。(*)アスタリスクは全ての範囲という意味。

指定した数字は間隔ではなく、その数字と同じ値のときに実行されるという意味。間隔は(/)スラッシュで指定できる。

日と曜日については、2つとも(*)アスタリスクなら毎日。どちらか指定があればその指定した日となる。2つとも指定があればいずれかに当てはまる日となる。

指定がない場合の実行間隔は1分。例えば、 * */1 * * * とすると、(時=/1)は1時間ごとだが、(分=*)が1分ごと(*は全範囲)という意味なので、1分ごとになる。1時間ごとにしたい場合、0 * * * * のようにすればOK。ちなみに、(/)スラッシュを削除しただけの場合どうなるかというと、* 1 * * * となり、(時=1)なので、1時だけと思いがちだが、(分=*)が1分ごとなので、1:00から1:59まで1分ごとに実行されてしまう。

状態確認
sudo systemctl status cron

ログ確認
journalctl -e -u cron
uオプション:サービス指定
eオプション:最新のみ表示

***

/var/spool/cron/ユーザー名

ユーザー単位で管理される。
コマンドで管理する。

・基本コマンド

一覧
crontab -l

設定がなければ、crontab -e
で作成。

削除
crontab -r

編集
crontab -e

ユーザーの指定は不要。

***

/etc/crontab

root権限で管理される。

以下のファイルを変更すると反映される。

毎時実行
/etc/cron.hourly 
毎日実行
/etc/cron.daily
毎週実行
/etc/cron.weekly
毎月
/etc/cron.monthly

***

・タイムゾーン設定

sudo timedatectl set-timezone Asia/Tokyo
確認の場合、
sudo timedatectl
変更したら、
sudo systemctl restart cron

rsync

rsync オプション コピー元 コピー先
コピー元の最後に/があるとフォルダの中身だけ、/がないとフォルダ自身も含めてとなる。同期先の/は関係ない。

共有にバックアップでフルアクセスにしたい場合、
rsync -p –chmod=a+rwx -r src dst
chmodとpが必要でハマった。

送信元に無いファイルを削除、特定のファイルを除外する場合、
–exclude=’xxx’ –delete

・rsync + ssh

転送先で鍵作成
sudo ssh-keygen -t rsa

ファイル名を聞かれるのでidとする。パスフレーズも聞かれるが指定しない。

秘密鍵:id、公開鍵:id.pubが生成される。

公開鍵の内容は転送先にある
.ssh/authorized_keys
に記載する必要があるので、
sudo cat id.pub >> .ssh/authorized_keys
もし、
.ssh配下にauthorized_keysがない場合は、
mv id.pub authorized_keys
などとしてもOK。作成した場合、パーミッション注意
chmod 600 authorized_keys

(すでに.ssh/authorized_keysがある場合、複数可なので追記する)

秘密鍵:idを転送元に持ってくる。ここではid.keyという名前にしておく。
必要な場合、
sudo chown root:root id.key
sudo chmod 400 id.key

転送元で以下のように実行すればOK。

sudo rsync -auz -e “ssh -i /home/ubuntu/id.key” /home/ubuntu/mysql/ ubuntu@転送先アドレス:/home/ubuntu/share

MySQLのバックアップ

・rsyncスクリプト

sudo vim /home/ubuntu/backup.sh
にファイルを作成する。

所有者rootでパーミッションは700
sudo chmod 700 /home/ubuntu/backup.sh

フォルダを作成する
mkdir /home/ubuntu/mysql

・cron設定

/etc/cron.d
の中に、
適当な名前でファイル作成、今回は
sudo vim /etc/cron.d/mysql_backup
とする。

所有者rootで、パーミッションは644(rw/r/r)

中には、
0 2 * * * root /home/ubuntu/backup.sh
と記入する。

起動しているかどうか
sudo systemctl status cron

手動バックアップの場合

mysqldump –single-transaction –skip-lock-tables -u ユーザー名 -pパスワード -h ホスト名 db名 > xxx_date +%Y%m%d.sql