アトム-サイト
[ アトム-サイト ]
feed-icon RSS2.0   feed-icon Atom
最新情報
最新3件を表示します。

 Linux 一覧へ

LinuxコマンドLinuxコマンド  <2020-05-20 09:24>

■サービス
/etc/init.d/mysqld start (サービス開始:例mysql)
/etc/init.d/mysqld stop (サービス停止:例mysql)
chkconfig --list (システム起動時のサービス設定リスト)
chkconfig mysqld on (システム起動時にサービスを開始する設定)
chkconfig mysqld off (システム起動時にサービスを開始しない設定)

■時刻
date
システム時計の時刻

hwclock --show
ハードウェアクロックの時刻
hwclock --systohc
システム時刻をハードウェアクロックに書き込む
hwclock --hctosys
ハードウェアクロックの時刻をシステム時計に書き込む

■圧縮・展開
tar -cz compdir/ > compdir.tar.gz
tar zxvf compdir.tar.gz(オプションpを入れるとパーミッション保持展開)
unzip compfile.zip(zip形式)
gunzip compfile.gz(gzip形式)

■ディレクトリまるごとコピー
cp -r directory/ newdirctory
上書き確認を強制的に無しにしたい場合は -f を入れます(alias cp で、alias cp='cp -i'と出る時は、-i オプションが付いてるので、cp の前にバックスラッシュをつけて元のcpコマンドを実行させます \cp -f )。

■ディレクトリまるごとchmod
chmod -R 777 directory/

■ディレクトリまるごと削除
rm -r directory/

■遠隔コピー
scp senddata user@host:.
逆だと、
scp user@host:recvdata .
(ここでパスワードを聞かれる)

■パスワード生成
mkpasswd -s 0 -l 8
↑特殊文字を省いて8文字にするには、こんな感じ。

■SLコマンド
sl
こんなのが走り抜けます。

■ユーザ
ユーザ追加
#useradd hogehoge -u 123 -g 456 -s /bin/bash -m -d /home/hogehoge
※メールアカウント等のログインしないユーザを作る場合は、/bin/bash を /bin/false にします。
※ホームディレクトリを必要としない時は -m を -M としますが、その場合アカウント自体作る必要ないかも…。
パスワード設定
#passwd hogehoge
ユーザ削除(ホームディレクトリごと削除)
#userdel -r hogehoge
ホームディレクトリ変更
#usermod -d rehomedir hogehoge

■グループ
グループ作成
#groupadd -g 4000 groupname
グループ削除
#groupdel groupname

■ファイル検索
ルートから探す場合
find / -name hogehoge.txt

■grep
AND検索はパイプで繋げて限定していく。
cat hogehoge.txt | grep searchstr1 | grep searchstr2
OR検索は-e
cat hogehoge.txt | grep -e "searchstr1" -e "searchstr2"

■テストメール送信
echo "To:*****@***.***" | /usr/sbin/sendmail -t

■空き容量確認
df
単位はキロバイトです。
df -h にすると、○K,○M,○Gと見やすくなります。
※ls, du等と共通のオプションです。
ここで100%となっていたら、下記コマンドで巨大ファイルを探す必要があります。

■ディスク使用量検索
du --max-depth 1 | sort -nr
cd / してから、使用量の多いディレクトリを辿っていきます。

■ファイル一覧表示
ls -la (普通に使う時)
ls -latr (古い順に並べる)
ls -s | sort -n (サイズの小さい順に並べる)

■空きメモリ確認
free
実メモリ総量はMem:のtotal項目で、2行目の buffers/cache: のfree項目が、実際の空きメモリです。

■負荷
実際に動いている状態で、topコマンド。
Shift + p でCPU負荷順に並び替えできます。

■リモートログイン
ssh hostname
IPアドレスでもOKです。

■ファイル取得
HTTPやFTP経由でファイルを取得します。
wget ftp://hogehoge.com/hogehoge


logrotate  <2020-05-20 09:23>

設定ファイルは
/etc/logrotate.conf
で、中身を見ると
include /etc/logrotate.d
とあるので、実際はlogrotate.dディレクトリ内の変更でいける。

いろいろなサービスがあるが、例えばapacheなら
/etc/logrotate.d/apache2のファイルに
/var/log/apache2/test.co.jp-error_log {
compress
monthly
maxage 365
rotate 99
missingok
create 644 root root
postrotate
/etc/init.d/apache2 reload
endscript
}
こんな感じ(例はerrorですが、accessも)のを追加してあげれば、定期的に処理してくれます。


WebサーバのSSL化  <2020-03-15 15:29>

まずはランダムなファイルを生成
現存するファイルを元に生成。
# openssl md5 * > rand.dat
*: No such file or directory
# openssl md5 * > rand.dat
ディレクトリに何も無いと怒られますが、2度目で1度目のrand.datを元にランダムファイルが作られます。

# ls
rand.dat
# cat rand.dat
MD5(rand.dat)= d41d8cd98f00b204e9800998ecf8427e

このランダムなファイルを元に、パスフレーズ付き秘密鍵を生成
# openssl genrsa -rand rand.dat -des3 1024 > ca.key
48 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
...................................++++++
.............................................++++++
e is 65537 (0x10001)
Enter pass phrase:(パスワード入力)
Verifying - Enter pass phrase:(再パスワード入力)

ちなみに、ランダムファイルもパスワードも無しにしたい場合は、
# openssl genrsa -out ca.key 1024

秘密鍵ができました。
# cat ca.key
-----BEGIN RSA PRIVATE KEY-
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,1422EC9B7CFF1AF9

L7JNy0g6eW9Mo9hbJiXxeRxoNb19QI9NR7++qExKEHbL3tg9MA9xkbEcLERY4TNo





8uXtS0Li0LcBMD1mfQ7SdLG/MWXEGl4eaFqMHEglIfvxCnxLakSYKPFKgM9UQ9ZW
HSG34E0wp40GhtQTRzYh4wQCvSBfPlPXuusLmj75EqWhqAJgQzuIGw==
-----END RSA PRIVATE KEY-
この秘密鍵は、Webサーバの設定で使います。

秘密鍵を元にCSR(証明書要求)を作成
# openssl req -new -key ca.key -out ca.csr
Enter pass phrase for ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Shizuoka
Locality Name (eg, city) [Newbury]:Kosai-shi
Organization Name (eg, company) [My-Company-Ltd]:Test Co., Ltd.
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:test.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

できました、CSR(証明書要求)。
# ls
ca.csr ca.key rand.dat

# cat ca.csr
-----BEGIN CERTIFICATE REQUEST-
MIIBoDCCAQkCAQAwYDELMAkGA1UEBhMCSlAxETAPBgNVBAgTCFNoaXp1b2thMRIw





4iSZ4RZlMJ4UOJPHz2IUkOLhTc3JAIHGxZ1gWeMJuPmYhrHyvxZTD6CLclw5v9ne
ceOdnl5ABBMd1EwNNGeDvkqhIQ+Q+4ehRR+6gaSaI+3rn9zQ
-----END CERTIFICATE REQUEST-

認証局から、署名付きの証明書を貰う
できたCSR(証明書要求)を認証局に送ると、証明書が送られてきます。
この証明書もWebサーバの設定で使います。
無料でSSL証明書を発行してくれるサイトはそんなには無いようです。
・CAcert
・startssl

ちなみに、CSRの作成を飛ばして、いきなりサーバ証明書を作るのは以下。
# openssl req -new -x509 -days 3653 -text -key ca.key -out ca.crt

Webサーバ設定
『ports.conf』
Listenを80から443に変更。
『ssl.conf』
SSLPassPhraseDialog を builtin から exec:/usr/local/sbin/pass.sh に変更してパス入力自動化。
『pass.sh』はこんな感じ。
# cat pass.sh
#!/bin/sh
host=`echo $1 | cut -d: -f1`
if [ "$host" = "test.com" ]; then <-注)全角[]は本来半角です
echo testpasswordabc;
fi
"$host" = "****" の、****が間違っていたり変なホストが混じっているとapache の起動に失敗します。
しっかりapacheのServerName設定と合わせる必要があります。

後は、オリジナルのssl.confをそのまま利用して「秘密鍵」と「証明書」を指定してあげれば、httpsでアクセスできる。
SSLCertificateFile /etc/httpd/conf/ssl/ssl.key/ca.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/ssl.key/ca.key


【Let's Encrypt】
最近は、無料の【Let's Encrypt】を利用させてもらっています。
証明書取得代がかからないので、ハッキリ言ってこれで充分!
しかも、インストールや設定は以下の数コマンドで出来てしまいます。
※ちなみに、CentOS6だと、以下。
# yum install epel-release
# wget https://dl.eff.org/certbot-auto
# chmod a+x certbot-auto
# ./certbot-auto --apache
※環境によってはエラーが出ますが、いろんな情報もあるので解決できるはずです。
あとは、crontab で、適度にSSL証明書の更新。
00 5 * * 1 /etc/certbot-auto renew --renew-hook "/sbin/service httpd restart"

自分の場合は、Apache上で複数のバーチャルドメインを動かしているので、Let's Encryptに個別にドメイン追加していきました。機能としてcertbot-autoには、ワイルドカード証明書対応がありますが証明書更新がうまくいかないという報告もあるので却下。同類のサイトをマルチドメイン対応にしたりと、個別にひとつずつドメインを追加する事としました。
# ./certbot-auto --apache
※以前やった対話型のcertbot-autoコマンドで、追加ドメインとリダイレクトの2つを指定するだけです。