timedatectl

表題のコマンドを使う機会があったのでメモ。

■ 環境

  • Ubuntu 16.04

■ timedatectl

そういえば、最近は”/etc/localtime“を置き換えるわけではないんだっけ、と思いやってみた。

$ timedatectl
      Local time: Thu 2017-08-17 10:15:18 UTC
  Universal time: Thu 2017-08-17 10:15:18 UTC
        RTC time: Thu 2017-08-17 10:15:17
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.
         This mode can not be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.

現状は”UTC“の時間が返却される。設定するときには”timezone“の名称が必要なようなので、まずは一覧を得る。

$ timedatectl list-timezones
Africa/Abidjan
Africa/Accra
  :
Asia/Tokyo
  :
$

Asia/Tokyo“という文字列を発見したのでこれを設定する。

$ sudo timedatectl set-timezone Asia/Tokyo

再度確認する。

$ timedatectl
      Local time: Thu 2017-08-17 19:18:28 UTC
  Universal time: Thu 2017-08-17 10:18:28 UTC
        RTC time: Thu 2017-08-17 19:18:27
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.
         This mode can not be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.

また、`date`コマンドでも変わっていることを確認。

$ date
Thu Aug 17 19:18:28 JST 2017
$

以上。

Ubuntuのホスト名を変更

表題の通り。先日はAmazonLinuxだったが今回はUbuntuである。

■ 環境

  • Ubuntu 16.04

■ on EC2

Amazon EC2 Linux 静的ホスト名
https://aws.amazon.com/jp/premiumsupport/knowledge-center/linux-static-hostname/

EC2上で行っていたのだが、AWSのドキュメントにも書かれていた。

■ /etc/hosts

hostsファイルを編集する。ホスト名と仮に”withsinweb01“としている。

127.0.0.1 localhost withsinweb01

AWSのドキュメントには”localhost“自体を書き換えてしまうと記載されているが、自身の好み的に”localhost“はまま残しておく。

■ /etc/hostname

hostnameファイルも編集する。ドメイン名は面倒なので付けない。

$ cat /etc/hostname
withsinweb01
$

後は再起動をすれば反映される。

■ hostname

インスタンスの再起動を行いたくなければ下記コマンドで反映する。

$ sudo hostname withsinweb01

以上。

■ 関連

AmazonLinuxのホスト名を変更

nginxで処理時間をログに出力

表題の通り。以前のエントリでは”Apache“での設定だったので”nginx“でも。

■ 環境

  • nginx 1.4.6
  • Ubuntu 14.04

■ nginx

ちょうどこれが適用できる環境の”nginx“が少々古いがまぁ仕方がない。このversionで確認してしまう。

■ request_time

Module ngx_http_core_module
https://nginx.org/en/docs/http/ngx_http_core_module.html#var_request_time

log_format“の最後に”$request_time“を下記のように追加してみた。

  log_format main '$http_x_forwarded_for - $remote_user [$time_local] '
                  '"$request" $status $body_bytes_sent '
                  '"$http_referer" "$http_user_agent" $request_time';

この設定を適用する。

$ sudo service nginx reload

ログには下記のように出力されていた。

XX.XX.XX.XX - - [17/May/2017:19:08:51 +0900] "GET /login HTTP/1.1" 200 2175 "http://example.com/login/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" 0.043

マニュアルによると”seconds with a milliseconds resolution“とあるので、上記は”0.043“秒といったところであろう。

以上。

■ 関連

access_logに”処理に掛かった時間”を記載

Pythonのパッケージ管理は何が良いの?

表題の通り。単なる愚痴である。

■ 環境

  • Python 2.7.12
  • pip 9.0.1
  • Ubuntu 16.04

■ python

Ubuntu 16.04でpythonを下記のようにインストールした。

$ sudo apt-get install python

確認。

$ which python
/usr/bin/python
$
$ python -V
Python 2.7.12
$

さてパッケージの管理は何でやるのが良いのだろう?`easy_install`とか`pip`とかを聞くのだが、`easy_install`で`pip`を入れて…とか聞くと「なんでよ!」と混乱してすぐに投げ出してしまう…。ということを繰り返してきた、また再度pythonに挑戦する。正確にはしざるをえない状況である。

あまりじっくりは調べていないのだが、とりあえず`pip`でやるのが王道らしいのでこれでいく。

$ sudo apt-get install python-pip

確認。

$ which pip
/usr/bin/pip
$
$ pip -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$

これで”boto3“とかが使えそうである。というわけでインストール。

$ pip install boto3
  :
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
$

boto3“のインストール自体は成功したようだが、メッセージが表示されていた。`pip`をupgradeしろということのようだ。せっかくなのでupgradeもしておく。”apt“のパッケージとは差異が出るが気にしない。

$ pip install --upgrade pip
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 1.1MB/s
Installing collected packages: pip
Successfully installed pip-9.0.1
$ pip -V
pip 9.0.1 from /home/ubuntu/.local/lib/python2.7/site-packages (python 2.7)
$

upgradeできたようである。これよりpythonライフを始めよう。

以上。

Ubuntu@Vagrantにおけるubuntuユーザのパスワード

少々わかりづらいが、表題の通りである。Vagrantで起動しているUbuntu 16.04がある。`vagrant ssh`でログインされる”ubuntu“ユーザのパスワードを知りたい。

■ 環境

  • Ubuntu 16.04
  • Vagrant 1.9.4

■ Ubuntu

使用しているBoxは下記のものである。

$ vagrant box list
ubuntu/xenial64  (virtualbox, 20170331.0.0)
$

このBoxにおける”ubuntu“ユーザのパスワードについては下記のファイルに書かれていた。

$ cat ~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/20170331.0.0/virtualbox/Vagrantfile
# Front load the includes
include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
load include_vagrantfile if File.exist?(include_vagrantfile)

Vagrant.configure("2") do |config|
  config.vm.base_mac = "026F8338C1E5"
  config.ssh.username = "ubuntu"
  config.ssh.password = "e43b35d5be0112aeaa005902"

  config.vm.provider "virtualbox" do |vb|
     vb.customize [ "modifyvm", :id, "--uart1", "0x3F8", "4" ]
     vb.customize [ "modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "ubuntu-xenial-16.04-cloudimg-console.log") ]
  end
end
$

この”Vagrantfile“の”config.ssh.password“である。試しにこのパスワードを用いて`su`してみると下記のようになった。

$ vagrant ssh
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-75-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

8 packages can be updated.
0 updates are security updates.


Last login: Thu May  11 19:17:14 2017 from 10.0.2.2
ubuntu@ubuntu-xenial:~$
ubuntu@ubuntu-xenial:~$ su - ubuntu
Password: e43b35d5be0112aeaa005902
ubuntu@ubuntu-xenial:~$

ちなみに先日のエントリでどのversionのBoxを使用しているか知りたかったのかは、今回のエントリの為である。

以上。

■ 関連

VagrantでVMが使用しているBoxのversion