- 投稿日:2020-03-30T20:36:22+09:00
Linuxでclipboardに簡単にコピー
- 投稿日:2020-03-30T16:27:59+09:00
新・中古PCに Acro linux をインストール
中古のPCを買いました、実に2年ぶり・・
新・中古PCは10年選手の
DELL Latitude E5510 Core i5 M560 DVD 無線 4G(金3000円
HDD欠だけど そんなの関係ねえ
早速、手持ちの320Gを突っ込んでArco linux (Archのフォーク) Install
何が良いって、裏パネルを外すだけで簡単アクセス!
CPU換装も実に簡単そうですが
i5 4コアに不満はないので、このまま使います。
ArcoLinux は日本語でインストールしましたが
日本語化には .Xprofile の新規追加が必要でした。
こちらの記事で紹介しております。
Archman Linux 日本語化 ←クリック(新窓)ご参考になりますでしょうか?
- 投稿日:2020-03-30T15:17:56+09:00
【AWS EC2】Amazon Linux2にMySQLのclientだけをインストールしてRDSに接続する方法
概要
- AWS EC2(AMI: Amazon Linux 2)にMySQLのクライアントだけをインストールしてRDS上のMySQLに接続する
環境
- AWS EC2
- OS: Amazon Linux 2
- AMI ID: amzn2-ami-hvm-2.0.20200304.0-x86_64-gp2
- RDS
- engine: MySQL Community
- version: 8.0.17
構築手順
1. すでにインストールされているmariadbを取り除く
- Amazon Linux2にはMariaDBがデフォルトでインストールされている
- 干渉したら困るので念のため削除しておく
$ yum list installed | grep mariadb mariadb-libs.x86_64 1:5.5.64-1.amzn2 installed $ sudo yum remove mariadb-libs Removed: mariadb-libs.x86_64 1:5.5.64-1.amzn2 Dependency Removed: postfix.x86_64 2:2.10.1-6.amzn2.0.3 Complete!2. mysql8.0のリポジトリを追加する
yum info
でmysql8.0がインストールできるか確認する- インストールできないのでmysql8.0のリポジトリを追加する
$ yum info mysql Loaded plugins: extras_suggestions, langpacks, priorities, update-motd 31 packages excluded due to repository priority protections Error: No matching Packages to list $ sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Installed: mysql80-community-release.noarch 0:el7-33. mysql8.0のリポジトリを有効化する
mysql80-community-release-el7-3.noarch
の中にmysql5.7も入っている- 今回はmysql8.0をインストールしたい
- mysql5.7のリポジトリを無効化し、mysql8.0のリポジトリを有効化する
$ sudo yum-config-manager --disable mysql57-community $ sudo yum-config-manager --enable mysql80-community4. mysql-community-clientをインストールする
$ sudo yum install -y mysql-community-client Installed: mysql-community-client.x86_64 0:8.0.19-1.el7 Dependency Installed: mysql-community-common.x86_64 0:8.0.19-1.el7 mysql-community-libs.x86_64 0:8.0.19-1.el7 ncurses-compat-libs.x86_64 0:6.0-8.20170212.amzn2.1.3 Complete! $ mysql --version mysql Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)5. RDSに接続する
- EC2からRDSへの3306ポートの通信は許可してあるものとする
$ mysql -h hoge.rds.amazonaws.com -P 3306 -u root -p Enter password: mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.03 sec)参考
- 投稿日:2020-03-30T08:11:55+09:00
Linux Mint でFolding@Homeして新型コロナウイルスの解析に貢献する
概要
Folding@Homeはウイルスのタンパク質解析などを行うために、個人が持っているPCの処理能力を使って解析しようというプロジェクトです。昔、UFOからの電波を解析する似たような考え方のプロジェクトがありましたね。
プログラムを実行するとFolding@Homeから解析するユニットを割り当てられ、それをダウンロードして解析処理を実行、終わったら結果をアップロードすることの繰り返しとなります。
Folding@Home自体は必ずしも新型コロナウイルス(COVID-19)に特化したものではなく、それ以前からあるようですが、現在は対象をデフォルトの
Any
に設定しておくと新型コロナウイルスを優先的に解析するようです。私も少しでもCOVID-19に早く終息してほしい、罹患しても薬で早く治って命を落とす人がいなくなればいいと思って自宅のLinuxPCで参加しています。Windowsでやる方法は Folding@Home Setupに書いておられますので、そちらを参照。
ここではLinux MintやUbuntuで貢献する手順を記します。インストール
必要なパッケージをダウンロード
$ wget https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v7.5/fahclient_7.5.1_amd64.deb $ wget https://download.foldingathome.org/releases/public/release/fahcontrol/debian-stable-64bit/v7.5/fahcontrol_7.5.1-1_all.deb $ wget https://download.foldingathome.org/releases/public/release/fahviewer/debian-stable-64bit/v7.5/fahviewer_7.5.1_amd64.deb$ sudo dpkg -i --force-depends fahclient_7.5.1_amd64.deb $ sudo dpkg -i --force-depends fahcontrol_7.5.1-1_all.deb $ sudo dpkg -i --force-depends fahviewer_7.5.1_amd64.deb自分はユーザー登録とかはせずに匿名で参加しました。
インストールが完了すると、デーモンモードで自動的に走ります。私はコマンドラインで行いたいのでサービスは止めておきます。$ sudo systemctl stop FAHClient.service $ sudo systemctl disable FAHClient.serviceCPUで実行
私のマシンは6コア12スレッドであるため、以下のように実行します。
$ FAHClient --client-threads=12 --smp=true --cpus=12ちなみにユーザー登録してpasskeyを取得済みの場合は以下のように実行
FAHClient --client-threads=12 --smp=true --cpus=12 --user=<username> --passkey=<passkey>
<username>
と<passkey>
には自分が登録したユーザー名と、そのときメールで送られてきたpasskeyを指定。ほどなくして、folding@homeのサーバーからユニットをダウンロードして解析が始まります。
解析が終わると結果がfolding@homeにアップロードされ、自動的に次のユニットのダウンロードに入ります。私のマシン( 6コア / 12スレッド / 2.60GHz [ 最大4.50GHz ] / 12MBキャッシュ)では約1時間弱で1ユニット分の解析が終わります。本当にちゃんとコアを使いこなしているか確認したいときはtopコマンドを見ればだいたいわかります。
左のターミナルで実行しているtopでFAHCore_a7
のCPU使用率がが1200%近い数値を出しているので間違いなさそうです。
止めたいときは
Ctrl-C
、 走らせたいときは上記コマンドで走らせておけばいいです。
GPUで走らせるともっとは早いと思いますが、それには色々めんどくさそうなのでまた機会があれば。
- 投稿日:2020-03-30T00:02:15+09:00
シェルスクリプトやってみようよ
Linux、コマンド、シェル、、、、そういう類の食わず嫌いを克服しました!!
この記事では、私が参考にさせていただいたサイトを紹介しながら、疑問点や解釈を補足していきます。
この記事が、「やってみよかな」「黒い画面こわい」と思っている方の一助になれば幸いです。シェルスクリプトって何?
これはいろいろなところで解説されていますが、私の解釈でひとことで言うとPCへの命令をひとまとめにしたプログラムです。
たとえば、ファイル名を変更したいとき。
複数あるファイル名の「試験」と「テスト」の文言の揺らぎを統一したいときに、ファイルやディレクトリを指定して一気にリネームする。とか。もうひとつ例、実行したコマンドのログのファイルを毎日作成したい(ロギング、というらしい)。とか。
・・・まって、それはバッチ処理のことじゃないの??と思い、調べました。
→ https://wa3.i-3-i.info/word11221.html
どうやらシェルスクリプトとバッチファイルは役割は同じで、ベースの世界が違うだけらしい。スクリプト作成方法と実行方法
macOSの方は環境構築等なしでターミナルから実行できますが、Windowsの方は準備が必要です。「Windows Linux」等でググってみてください
以下のスクリプト作成方法と実行方法を参考にしました↓
https://udemy.benesse.co.jp/development/web/shellscript.htmlエディタはVi(ヴィーアイ)を利用していますが、テキストエディタならだいたいなんでもいけるはず。
最近は、Viの進化版であるVim(ヴィム)が人気らしい。
ViやVimは設定すればコードの色分けができますが、今回は割愛します。
VS Codeだと自動で色分けしてくれて見やすいです。優しい。シェルスクリプトの基本を叩き込む
以下をひととおり学習しました↓
http://motw.mods.jp/shellscript/tutorial.html比較演算子の覚え方
-eqは分かるけど、-gtとか-leとかはパッと使いたいけど覚えにくい。。。
英語を知ると少しだけ覚えやすくなりますね!
演算子 英語 意味 eq equal x = y ge greater than or equal to x >= y gt greater than x > y le less than or equal to x <= y lt less than x < y ne not equal x != y 実用的なスクリプト作ってみよう
その1:ファイル名を一括リネームする
以下のサイトを参考にしました
http://motw.mods.jp/shellscript/rename.htmlその2:バックアップフォルダにファイルやフォルダをコピーする
こちらは自分で考えて作成してみました。
make_bk.sh#!/bin/bash read -p "バックアップをとりたいファイル名またはフォルダ名を入力してください:" ary echo $ary #入力値がない場合、エラーメッセージを表示し終了する if [ -z $ary ]; then echo "バックアップを取りたいファイル名またはフォルダ名を入力してください" exit 1 fi #バックアップフォルダを作成。-pオプションで、フォルダが存在しないときだけ新規作成される bkdir=bk_$(date +%Y%m%d) mkdir -p $bkdir #入力されたファイルまたはフォルダをひとつづつ読み取る for target in ${ary[@]} do #コピーを作成し、バックアップフォルダに格納する [ -d $target ] && cp -r $target $bkdir/$target || cp $target $bkdir/$target doneこのスクリプトでは、ファイルやフォルダの数を限定していないので、入力を受け付けるときに配列を利用しました。
配列の使い方は、以下を参考にしました。
https://www.atmarkit.co.jp/ait/articles/1905/22/news004.html以下の部分について。
[ -d $target ] && cp -r $target $bkdir/$target || cp $target $bkdir/$targetcpコマンドでは、フォルダ(=ディレクトリ)をコピーするときは「-rオプション」が必要なため、$targetがディレクトリかどうか判断してからcpコマンドを実行しています。
他に良い方法ありましたらご教示いただけると嬉しいです。実行してみましょう
実行前のフォルダ構成tmp ├── make_bk.sh └── test.txt //こいつをコピーします実行します
$ bash make_bk.sh バックアップを取りたいファイル名またはフォルダ名を入力してください:test.txt test.txt実行後のフォルダ構成tmp ├── bk_20200329 //新規作成されたフォルダ │ └── test.txt //コピーされたファイル ├── make_bk.sh └── test.txt次は、
フォルダごとコピー&バックアップフォルダが存在している場合は対象をコピーするだけ
を確認します。実行前のフォルダ構成tmp ├── bk_20200329 │ └── test.txt ├── make_bk.sh ├── test.txt └── test2 //こいつをコピーします └── test2.txt //同時にコピーされるはず実行します
$ bash make_bk.sh バックアップを取りたいファイル名またはフォルダ名を入力してください:test2 test2実行後のフォルダ構成tmp ├── bk_20200329 │ ├── test.txt │ └── test2 //コピーされたフォルダ │ └── test2.txt //一緒にコピーされたファイル ├── make_bk.sh ├── test.txt └── test2 └── test2.txtおまけ:便利なLinuxコマンド
学習していく中で「便利だな、使いそうだな」と思ったコマンドのメモです。
◆historyコマンド実行時に日時も表示させたい
参考:https://linuxfan.info/add-datetime-to-history
◆作業ログを記録したい
参考:https://dev.classmethod.jp/articles/scriptcommand/おわりに
基本は掴めたはず!何事もやってみるもんですね。
今回の目的はスクリプトに慣れることだったので、作成したスクリプトの実用性を問われるとなんとも言えませんが、
これから作業していく中で「これ自動化したい」「このコマンドまとめられる!?」と思ったときに作れそうな気がするので、時が来るのを楽しみにします、、、
次の段階として、実行速度や再利用性などにも気を遣えるよう勉強していきます…!