- 投稿日:2021-02-21T23:03:27+09:00
LPIC201を受ける方へ
はじめに
LPIC201に合格したので、私の勉強方法についてまとめます。
私自身、他の方の合格体験記を励みに勉強していたので、これから受験する方の一つの参考になれば幸いです。LPIC201とは
ここに訪れている方には説明不要かと思いますが、簡単にご説明します。
LPICとは、LINUX OSに対する知識を問う認定資格です。
LPICにはLevel1〜3まであり、Level3までいくためには、Level1から順次取得していく必要があります。
Level2の認定を受けるためには本試験である201及び、202の二つの試験に合格する必要があります。筆者スペック
個人的に、合格体験記に筆者スペックが書いてあると自分と照らし合わせて考えられるので、結構好きな欄です。このくらいのバックグラウンドの人が、これくらい勉強して合格したんだな、なんて指標にもなると思うので、一つのサンプルとしてご査収ください。
項目 内容 職業 独立系SIer勤務3年目。主に制御系システムの請負業務。 Linux経験 業務で一年ほど。Linuxベースシステムのミドルウェア開発。 他経験 制御系システム開発(C言語)。最近はパブリッククラウドの設計・構築。 学歴 地方国立理系(非情報分野) 年齢 27歳 保有資格 基本情報技術者 / LPICLevel1 / AWS系 / Azure系 勉強期間
大体1ヶ月です。
1日の勉強量は測定していませんが、1〜3時間くらいだったと思います。
時間ではなく、今日はここまで、と目標を区切ってやりました。勉強方法
# 内容 期間 1 小豆本を読む 1週間 2 Ping-t 一周目(全てヒット) 2週間 3 Ping-t 二周目(全てコンボ) 5日 4 Ping-t コマ問一周 2日 1.小豆本を読む(約1週間)
まずはLPICお馴染みの小豆本で、内容をさらっと理解します。
ここでは、内容の完璧な理解は意識していなくて、こんなものがあるんだなーくらいで全体像を掴むことを意識しました。
1日1章のペース進めました。2.Ping-t 一周目(全てヒット)(約2週間)
LPICお馴染みのPing-t。このサイトは本当に素晴らしいと思います。
各章ごとに、10問ずつを1セットとして解いていきました。最初は全然解けないかもしれませんが、心配はいりません。ここで重要なのは、解説までしっかりと目を通すことです。問題の暗記だけでは合格難しいと思います。
1日0.5章くらいのペースで進めました。
0.5章/日というペースはあまり負担になることのないペースでした。また、2日かけて1章を完了するので、2日目に1日目の復習ができたのがよかったと思います。3.Ping-t 二周目(全てコンボ)(約5日)
一周目は各章ごとに行いましたが、今回は全章をランダムに10問を1セットとして解いていきました。前半の章などは結構忘れてしまったりするので、解説もそれなりに目を通します。
大体1日100問強をコンボにしていきました。4.Ping-t コマ問一周(約2日)
意外とやらないがちですが、私としてはこれに毎度助けられている気がします。
コマ問は、各章ごとに一周で良いのでやった方がいいと思います。ここまでの選択式の問題だと、コマンドやパスなどが曖昧な記憶になってしまいがちかと思います。コマ問を一周するだけで頭の整理と記憶の定着が出来た感がありました。もちろん最初は全然解けないかもしれませんが、それだけ記憶が曖昧だったと自覚して、頑張って一周はしましょう。ここまできて、模擬試験を2回実施し、共に9割超え出来ていたので、本番試験に臨みました。
結果
LPIC201合格しました。
— 村上 (@rocketboy555) February 21, 2021
勉強期間1ヶ月。CBT方式の試験にもいよいよ慣れてきた。
次は最難関と言われている、202。 pic.twitter.com/U2C0h5ZNRt
590/800点で合格でした。
偉そうに書いてる割には点は伸びていないですね。
本番中は見たことあるような問題が多かったので、かなりリラックスして臨めました。(正直もっと取れていると思いましたが・・・。)
見たことないような問題も出ましたが、最初から覚悟しておけばパニックにならないと思います。
コマンドの問題は6,7問くらいだったと思います。Ping-tのコマ問よりは圧倒的に簡単でした。オプションは問われることはなく、コマンド単体を答えるだけのものが多かったです。おわりに
冒頭にも書きましたが、今後201試験を受ける人の参考になればと思います。
年内にLevel3まで取得する予定です。
- 投稿日:2021-02-21T22:22:52+09:00
常用のLinuxコマンドラインをまとめ
ファイル管理
$ ls -al隠されたファイルを含めフォーマットに表示$ mkdir YOURDIRディレクトリを作成$ touch YOURFILEファイルを作成または更新$ cp YOURFILE1 YOURFILE2ファイル名を更新またはコピー$ cp YOURFILE1 YOURFILE2ファイル名を更新またはコピー$ mv YOURFILE1 YOURFILE2ファイル名を更新または移動$ cp -r YOURDIR1 YOURDIR2ディレクトリ及びディレクトリ配下ファイルをコピー$ rm YOURFILEファイルを削除$ rm -rf YOURDIRディレクトリ及びディレクトリ配下ファイルを削除$ scp -r USERNAME@HOSTIP:~/REMOTEDIR LOCALDIRリモートのディレクトリからディレクトリ及びディレクトリ配下ファイルをコピープロセス管理
$ ps現在実行しているプロセスを検閲CTRL+Z現在実行しているプロセスを一時停止$ bg一時停止するプロセスを検閲$ jobsアクティブなジョブをリスト表示$ fg JOBID動作中のバックグラウンドジョブをフォアグラウンドで実行$ kill PIDプロセスを中止ファイルと内容検索
$ grep YOURKETWORD YOURFILEファイルに内容検索$ grep -r YOURKETWORD YOURDIRディレクトリ配下ファイルに内容検索$ find YOURDIR -name "YOURSEARCHNAME"ディレクトリ配下ファイルをファイル名またはディレクトリ名で検索$find YOURDIR -name "*.EXNAME"ディレクトリ配下ファイルをファイル名で拡張子で検索、*は.EXNAME以外未指定でも検索できるファイル権限管理
$ chomd XXX FILENAME権限対象はOWNER(第一位),GROUP(第二位)とWORLD(第三位)三種類、権限はREAD(4),WRITE(2),EXECUTE(1)三種類.例えば、$ chomd 761 readme.txtは「OWNERの権限はREAD+WRITE+EXECUTE=7,GROUPの権限はREAD+WRITE=6,WORLDの権限はEXECUTE=1」と言う意味です。ps:chomdは他の権限表示方法もある。その他
nvidia-sminvidia CPU 状態を検閲find . -FILENAME '.*.???' -type f -print -exec rm -rf {} \;隠すファイルを全部削除ifcofigipアドレースを検閲echo CMDLINE > FILECMDLINEはFILEに書くsh SHELL.shSHELL.shを実行
- 投稿日:2021-02-21T20:57:33+09:00
【AWS初学者向け】テスト用EC2作成時の面倒くさいことを、代わりにシェルスクリプトにやってもらおう!
1.はじめに
AWSというのはとても便利で、重いサーバー,ラックを用意しなくても誰でも簡単にサーバー構築が出来る。
そしてそれと同じように簡単にサーバーを削除することが出来る。
作っては消して作っては消してを世のハンズオンドキュメント,動画の数だけ行うのだ。
しかし何度も何度も構築するにあたってやりたいことは違えど毎回同じ作業が発生するのだ。
駆け出しであろうとIT従事者であるからには、そういう同じ無駄な作業を無くしていかなければならない。
今回はシェルでの無駄作業を自分は一切コマンドを打つことなく、代わりにシェルスクリプトに自動でやってもらおうというハンズオン記事である。
(ハンズオンと言ってもシェルスクリプトを書くだけだが..)
同時にシェルスクリプト、viの訓練にもなるので初学者の方は是非見ていって欲しい。2.概要
今回の流れは、
"EC2(Amazon Linux2)を構築する際、作成時の「ステップ3:インスタンスの詳細の設定」「ユーザーデータ(テキストで)」にあらかじめ作成しておいたシェルスクリプトを挿入、構築後の面倒なコマンド操作を自動でシェルスクリプトに行ってもらう"
となっている。
注意事項として既にネットワーク周りの設定(VPC,Subnet等)は構築済でEC2を構築した段階で外と通信が行われる前提で話を進めていく。※使用イメージはAmazon Linux2です。
3.シェルスクリプトの作成
早速だが本題のシェルスクリプトを作成する。
下記コードが今回の"面倒くさいから自動化しちゃおうスクリプト"になる。#!/bin/bash -ex exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1 # まずは全てのパッケージをアップデート yum update -y # 言語設定 echo "LANG=ja_JP.UTF-8" > /etc/sysconfig/i18n # 時刻同期 sed -ie 's/ZONE=\"UTC\"/ZONE=\"Asia\/Tokyo\"/g' /etc/sysconfig/clock sed -ie 's/UTC=true/UTC=false/g' /etc/sysconfig/clock ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # ホスト名の変更 HOST_F=hostname.domainname sed -ie "s/localhost\.localdomain/${HOST_F}/g" /etc/sysconfig/network #/etc/hostsにホスト名を追加 ip addr show | grep "inet.*eth0" | awk {'print $2'} | sed -e 's/\(.*\)\/.*$/\1/g' | xargs -I{} echo "{} ${HOST_F} ${HOST_S}" >> /etc/hosts # ユーザの作成 & passwd設定 ※testuserを貴方の好きなユーザー名に、testpasswdを好きなパスワードに変更して下さい。 useradd testuser echo "testpasswd" | sudo passwd --stdin testuser # su権限を与える sed -i -e '$ a testuser ALL=(ALL) NOPASSWD:ALL' /etc/sudoers # パスワード認証でのSSH接続の許可 sed -i -e 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config # sshdを再起動し、設定を反映 ※これで作成したユーザーによるSSH接続(passwd認証)が可能になります。 systemctl restart sshd # ec2-userの削除 userdel ec2-user # 王道のApacheをセットアップ ※nginxを使用する際はhttpdをnginxに変える amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2 yum install -y httpd mariadb-server systemctl start httpd systemctl enable httpd usermod -a -G apache ec2-user chown -R ec2-user:apache /var/www chmod 2775 /var/www find /var/www -type d -exec chmod 2775 {} \; find /var/www -type f -exec chmod 0664 {} \; echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php # おまけ touch sample.txt echo "blogyondekuretearigatougozaimasu" > sample.txtテスト用インスタンスに必要な初期設定はこれくらいになるはず。
こんなんも自動化したら楽になるといったものがあれば是非コメントでいただきたい。4.EC2の構築
では実際にシェルスクリプトをユーザーデータに貼り付けてEC2を構築してみよう。
EC2の構築講座ではないので構築手順等については他の記事がいくらでもあるので参照していただきたい。手順1:上記スクリプトの必要箇所を修正してコピー
手順2:EC2を作成、ステップ3のユーザーデータにスクリプト貼り付け ※下記画像参照手順3:SSH接続 ※作成したユーザー名とパスワードを入力して下さい
手順4:各設定が反映されているか確認 ※下記コマンド参照・コマンド確認
# ホスト名が変わっているか cat /etc/hosts #時刻同期が出来ているか date #ユーザー名が変わっているか cat /etc/passwd | grep 設定したユーザー名 #ec2-userが削除できているか cat /etc/passwd | grep ec2-user・Apache確認
EC2インスタンスのPublicIPAddressをコピーしてブラウザのURLに貼り付けて検索実行。
Apacheのページが表示されたら確認OK。5.まとめ
といった感じでうまい具合に面倒くさい作業が自動化されたわけだ。
もちろん人によって面倒くさいは変わってくると思うので、各々が好きにスクリプトをカスタムするのをおすすめする。
実はシェルスクリプト以外にもユーザーデータを使用しての自動化は行えるが、今回は一番ポピュラーなシェルスクリプトを使用させていただいた。
上記でも書いたがこういうことを構築時に自動化したい等あれば是非コメント等いただきたい。
では以上で失礼します。この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com
- 投稿日:2021-02-21T19:45:21+09:00
SSH接続したLinuxでキャプチャしたパケットをローカルPCのWiresharkで開きたい
はじめに
TeratermなどでSSH接続したLinuxでキャプチャしたパケットを、ローカルのWiresharkで開いてグラフ解析などをしたい場合があります。
Linuxでキャプチャしたパケットを、ローカルPCにダウンロードする方法を調べてみたのでメモとして残しておきます。
目標
- SSH接続したLinuxでtsharkにてパケットをキャプチャし、それをローカルPCに落としてwiresharkで開く
環境
AWS EC2を使用
- インスタンス:t2.micro
- OS:Amazon Linux2
- ターミナル:Teraterm準備
あらかじめroot権限を取得しておく
- wiresharkがインストールされているか確認
rpm -q wireshark
- インストールされていなければ、インストールする
yum -y install wiresharkパケットキャプチャ
- 適当なパケットをキャプチャし、ファイルに出力する
tshark -i eth0 -w packet.pcapngダウンロード
- 所有権を変更
ダウンロードできるように一般ユーザー権限に変更するchown ec2-user:ec2-user packet.pcapng
- teratermのssh SCPでダウンロード
- ファイル→SSH SCP...→以下のように入力して[Recieve]
From:先ほどキャプチャして保存したファイルを指定 To:ローカルPCの適当なディレクトリを指定ローカルPCのWiresharkで開く
Wiresharkでダウンロードしたファイルを指定して開きます。
うまくできていれば開いてグラフ解析などの機能が使えるはずです。
- 投稿日:2021-02-21T17:31:34+09:00
Cloud gaming handheld project [Service] ---- 2021/02/21
There is too many experience in this project, so I will separate to two or three part, I will talk about the [Cloud gaming service] first.
Why & What's [Cloud Gaming]?
Cloud gaming is a new way to play game.
The PC game is more and more heavy now, not only the size of the game, but also the spec of your PC.
It's not that difficult, if you are an indoor guy to play it, but that only happen before you graduate.
I've many online friends is disappear because of their job, that broke my heart a lot.
So I start this project, to let every gamer can play any game in everywhere.
This project is still unfinished, this article is some of my experience.
If you are interesting with cloud gaming, please finish this project, not for me, for every gamer.How it work?
As the name "Cloud" gaming, the game is actually not running on the handheld device.
The game is running by a high spec PC in your home (or server room), and use any communications protocol (like VNC) send the graph in to your handheld device.
So the only thing your handheld do is just display the graph sending from the gaming PC, and send the control message to the gaming PC.
Communications Protocol
There is more and more company is making there own cloud gaming service science it pop up.
So I decided to use the cloud gaming service making by the other company, not only because I'm lazy, the most important is to protect my gaming PC not to being hack.Steam link
Steam link is the first cloud gaming service I have test, it's the most popular communications protocol every one is using.
But it only support local network, can't use in out door.
Moonlight
Moonlight is support using in outside, but you need to click the accept button on your gaming PC every time when you want to connect it.
RainWay
RanWay is a good cloud gaming service that I have been use for a long time.
They have even design Android and IOS version, so you can play it on your phone.
I even buy a steady to keep my smartphone on my PS4 controller.(I'm not using Bluetooth because 2.4Ghz will make my wifi unstable.)
But the smartphone version consumes a lot of electricity, and makes your phone really hot.
After I use RainWay, I realize that I need the other handheld device to run it, not using the smartphone anymore.Parsec <--Witch I'm using now.
Parsec support many kind of device, just like RainWay, Parsec support Android too(but no IOS, I know that because I bought an IPad 2018 for it).
It not only support smartphone, also Raspberry pi 3(not on 4, yes I west my money AGAIN!).
So this is all the cloud gaming service I have been use before.
I will talk about the hardware part in the next article.<--The most expensive part XDD
- 投稿日:2021-02-21T11:02:24+09:00
コンソールで遊んでみよう!
自己紹介
なまえ:rattcv(しばたかずお)
職業:会社員&フリーランスプログラマ
・UnixライクなOSが好き
・自称CLIヲタク
・青森県弘前市というところに住んでます
・twitter: @rattcv
今回の趣旨
Linux デスクトップ環境では、X Window System(略して X)というディスプレイ上でウィンドウシステムを提供するネットワーク透過な表示プロトコルが使われています。
(他にWaylandがある)今日はこの X を起動せずに、コンソールのままでグラフィカルなアプリケーションを使用する方法を紹介します。
仮想コンソールについて
仮想コンソールとは、非グラフィカル環境でのテキストコンソールのことです。
X Window System を備えたた Linux 環境で、画面がフリーズした場合などのトラブルシューティングに有効です。仮想コンソールは tty(TeleTypewriter) と呼ばれています。通常は、6つ(tty1 ~ tty6)が存在します。それぞれのコンソールは同時にアクセスし、異なる作業を行うことができます。
■ グラフィカルデスクトップとの切り替え方法(Ubuntu20.04の場合)
動作 入力キー 仮想コンソール( tty[1-6] )切り替え Ctrl + Alt + F[1-6] デスクトップに戻る Ctrl + Alt + F7 現在ログインしている仮想コンソールの番号は、次のコマンドから確認できます。
$ tty /dev/tty3
sudo systemctl set-default multi-user.targetとやってリブートしてもテキストログイン出来る。
sudo systemctl set-default graphical.targetでグラフィカルモードに戻る。
mltermを使ってみる
Linux Kernel 2.2からframebufferで高解像度のコンソールが使えるが、2バイト文字には非対応。
そこで、ターミナルエミュレータmltermのコンソール版であるmlterm-fbを使ってみましょう。https://github.com/arakiken/mlterm
libsixelを使ってみる
https://github.com/saitoha/libsixel
w3m-sixelを使ってみる
sayakaちゃんを使ってみる
https://github.com/isaki68k/sayaka
FFmpeg-SIXELを使ってみる
https://github.com/saitoha/ffmpeg-sixel/tree/sixel
matplotlib-sixelを使ってみる
https://github.com/koppa/matplotlib-sixel
おしまい
- 投稿日:2021-02-21T10:09:14+09:00
ln -s …の次の引数の順序に迷った時の覚え方
cpやmvコマンドと同じで、今実在するパスが先。ここからコメントで教えて頂いた内容ですが、この時
ln -sではなくln -srにしておくと階層違いのシンボリックリンクを張る時にも安全です。例えば
mylink -> mydir/myfileというリンクを張りたい時に
ln -s mydir/myfile mylinkならOKですが
cd mydirした位置でln -s myfile ../mylinkとすると作られたリンクはmylink -> myfileとなって繋がりません。
-rオプションがあるとそれを直してくれるためcpやmvなどのようにTabキーでファイル名補完できたパスを使いたい時は-r付きだと安全です。
- 投稿日:2021-02-21T02:46:27+09:00
Tesla K80を動作させる方法
序
こんにちは。橋本です。
超並列計算が必要な科学計算用途において、計算用GPUの存在は不可欠です。
中でもプログラミングツールキットの情報が豊富なNvidia製GPUは汎用性が高く、従来より高速な計算が可能となっております。しかしながら、倍精度を要求する計算において、一般的に流通しているNvidia GTX,RTXシリーズは厳しい制限が掛けられており、科学計算には不向きです。(単精度においてはこの限りではありません。)
Nvidia製GPUの中で倍精度に制限が掛けられておらず、現在のGTX,RTXシリーズと比較しても遜色ない性能のものは以下の何れかしかありません。このうち、K20,40,80あたりが中古で現実的な値段で手に入りやすくなっております。
そこで、K80を研究室で購入頂いたわけなのですが、動作までにちょっとした苦戦がありましたのでナレッジしておきます。なぜか、記述が見つからなかったので。
破
K80のインストール方法を述べます。
先に結論
K80が使用できるチップセットは「C610」「X99」「Z77」以降のアルファベットシリーズです。
「B150」とか「X79」とかは使えません!
また、対応しているからと言って必ず使えるとはかぎりません。(大抵は使えると思いますが。)
事前にマザーボードの設定項目が「Above 4GB MMIO BIOS Assignment (4GB を超える MMIO BIOS 割り当て)」をサポートしているかを確認してください。
この項目の無いマザーボードは動きません。組み立て
K80はパッシブ冷却ですので、ファンを内蔵しておりません。そこで以下のシロッコファンを接着剤でつけることで解決しております。
また、電源はペリフェラルから12Vを供給しております。おそらくマザーボードのファン端子から電気を得るとMOSFETがアチアチになると思います。設定
マザーボードUEFI BIOSの項目「Above 4GB MMIO BIOS Assignment (4GB を超える MMIO BIOS 割り当て)」を探し、有効にしてください。
有効にしないままインストールを進めると、OSをから認識はされますが、ドライバーが当たらない奇妙な現象に遭遇します。
OSのインストール
Ubuntu 20.04LTSを導入します。
インストールする際に「サードパーティ製のドライバをインストールする」項目にチェックを入れないでください。ログインループに陥ります。やらかしてしまった場合は素直にOSをインストールし直しましょう。ドライバのインストール
任意のCuda Toolkit ヴァージョンをアーカイブから選択してインストールします。
Cuda Toolkit Archives「https://developer.nvidia.com/cuda-toolkit-archive 」
あとは、インストール手順に従ってインストールを行います。
再起動の後、「nvidia-smi」コマンドで確認してください。
急
「lspci -v」コマンドでPCIeからは認識しているのにCUDAドライバーが当たらない事象に遭遇しました。原因は「Above 4GB MMIO BIOS Assignment (4GB を超える MMIO BIOS 割り当て)」の有無です。
そもそも、PCIeは「メモリ空間」「IO空間」「コンフィギュレーション空間」の3つのアドレス空間を持ちます。
うち、メモリ空間において1バスでメインメモリ空間に転送(仮想化)できるメモリ量は256MB。x16バスで4GB(32ビットアドレス長)
k80は1つのバスに24GBのメモリがあり、x16バスで全てをマッピングできません。
(Tesla k40やTesla C2070ではこの現象が現れなかったため、24GBというメモリ量がこれを要請している可能性がある。)すなわち、「IO空間」「コンフィギュレーション空間」が生きているからPCIeから認識されるが、「メモリ空間」を有効にするドライバを入れようとすると弾かれてしまうと考えられます。
解決策は「Above 4GB MMIO BIOS Assignment (4GB を超える MMIO BIOS 割り当て)」を有効にすることです。有効にすれば、1バス256MBの制限がなくなります。
この機能は「C610」「X99」「Z77」以降のアルファベットシリーズを持つチップセットに搭載されている事が知られています。参考
nvidia公式では「いや~。k80はワークステーション向けだから。そんな一般のマザボで動かないとか知らんよ。ワークステーション向けのC610とか買ったら?」的な事が書いてありました。
https://community.intel.com/t5/Intel-NUCs/Latest-BIOS-for-NUC6i7KYK-and-quot-Above-4G-decoding-quot/m-p/690484#M68958Xeon Phiのインストールのときダメだった的なコミュニティなのですが、ここで「K80とか大きなメモリ空間を使うものはAbove 4GB MMIO BIOS Assignmentを有効にすればいいよ!」と猛者がつぶやいており、ここから答えをえました。
https://forums.developer.nvidia.com/t/plugging-tesla-k80-results-in-pci-resource-allocation-error/37007/11ASUSさんは言ってましたね。「Teslaとか使うときには4GBデコードをオンにしてね!」と。
https://www.asus.com/jp/support/FAQ/1017190/












