- 投稿日:2020-08-08T17:48:17+09:00
Ubuntu@MacminiをMacで使える便利サーバにする
はじめに
家にあったMacminiの使い途がなかったので、Ubuntuを入れて何か便利に使ってみようと、
色々調べて構築してみました。
また普段使っているパソコンはMacbookなので、それとの連携を考えました。各スペックと実装する内容は以下の通り。
サーバ側
Macmini
- 内蔵ドライブはSSD 128GBとHDD 500GBに換装(自作FusionDriveを組んでいた)
- 外付けドライブはHDD 1TB
- 内部をあれこれ触っているうちにAirMacとBluetoothのアンテナが外れちゃったので、それぞれUSBで接続
クライアント側
Macbookやりたいこと
- TimeMachineサーバ(バックアップディスクのリモート化)
- iTunesライブラリの外出し (もうiTunesって言わないんだった。。。)
- 写真ライブラリの外出し
- メディアサーバ化
Ubuntuのインストール(ざっくり)
- Ubuntu 18.04のISOイメージをUbuntu日本語サイトからDL、DVDを作成
- 外付けDVDドライブでインストールDVDから起動
- Macとのデュアルブートは考えてないから、SSDを全消ししてインストール
- 一度パーティション暗号化しちゃったけど、あとあと面倒なことになったので暗号化せずに再インストール
- Wifiは手元にあったPlanexの適当なやつ
インストールの後は以下の3つを実施。
データ保存用ディスクの作成
内蔵HDDの500GBと外付けHDD 1TBをLVMに組み込んで1.5TBのボリュームを作成。(/mediaにマウント)
GUIでやる方法がわからなかったので、コマンドラインで作成。(詳細は割愛)VNCを有効可
Macのデフォルトのクライアントは、そのままでは繋がらないので、以下のように暗号化要求を無効。
sudo gsettings set org.gnome.Vino require-encryption falseでもデフォルトクライアントは遅かったのでiTeleportを利用。
でもiTeleportって開発、配布終了してない??sshdを有効可
デフォルトでsshdが入っていなかった(結構驚きだった。)のでインストールから。
sudo apt-get install aptitude sudo aptitude install sshTimeMachineサーバ化
さてここから本題。まずはTimeMachineサーバ化をします。
前はAFPっていうプロトコルで接続するためにNetatalkを入れて実現するんでしたが、
最近のMacOSはAFPでTimeMachineバックアップができなくなったので、
割と新しいSambaを入れます。sambaのインストール
aptで入れられるSambaではバージョンが古くて、TimeMachineバックアップはできないので、
ソースからコンパイルして、インストールします。あんまりちゃんとメモしてなかったので、色々割愛。
ソースはこちらからダウンロード。Samba HP
自分はバージョンは4.11.9を入れた模様。configure時のオプションは、こちらのサイトとかを参照。
sambaの設定
設定はこんな感じかな?
/etc/samba/smb.conf[global] # globalセクションの最後の方とかに以下を追加 # Special configuration for Apple's Time Machine vfs objects = catia fruit streams_xattr fruit:model = MacMini # ここは何でもいいっぽい。多分。 fruit:resource = file fruit:metadata = netatalk fruit:locking = netatalk fruit:encoding = native durable handles = yes kernel oplocks = no kernel share modes = no posix locking = no fruit:advertise_fullsync = true smb2 leases = yes fruit:aapl = yes [TimeMachine@Ubuntu] # 上記の名前がTimeMachineの設定に出てくる。 path = /media/timemachine # バックアップを取るパスを指定。 valid users = hoge writable = yes durable handles = yes kernel oplocks = no kernel share modes = no posix locking = no vfs objects = catia fruit streams_xattr ea support = yes browseable = yes read only = No inherit acls = yes fruit:time machine = yes fruit:aapl = yes spotlight = yes create mask = 0666 directory mask = 0777 comment = Time Machine fruit:time machine max size = 512G # timemachineのボリュームを制限するならここで指定。mDNSでMacminiを探せるように、avahi-daemonをインストール。
これはaptでインストールしても問題ないので、諸々割愛。バックアップが途中で止まっちゃったりするようであれば、こちらを参考。
iPhoneの同期とかTimeMachineバックアップのときにSambaがCoreファイルを吐いて強制終了する話iTunesライブラリの外出し
ローカルに音楽ファイルがあると、ローカルのSSDを食いつぶしちゃうので、
これもさっきのSambaで共有したフォルダに置いておきます。それ用のフォルダの設定はこんな感じ。
/etc/samba/smb.conf[media] comment = media path = /media guest ok = no browseable = yes read only = no create mask = 0666 directory mask = 0777あとはMacで共有フォルダをマウントして、iTunesのライブラリ(Music Media)の場所を、マウントしたボリュームに変更。
さらにファイル->ライブラリ->ライブラリを整理...を選択して、
ファイルに結合にチェックを入れてOKを押すと、共有フォルダにファイルがコピーされる。
ローカル側でCDの読み込みをしても、ちゃんとサーバ側にファイルができるので便利。
写真ライブラリの外出し
写真もiTunesと同じ用にやればライブラリの外出しはできるんだけど、
そうすると今度はiCloud写真が無効化されちゃうので、結局もとに戻した。メディアサーバ化
ソフトを探してみたが、しっくり来るものがなく今回は保留。
そもそもメディアサーバってあんまり用途がないかも・・・。はじめ音楽ファイルはMacmini側からDLNAで配信すればいいかなーって思ってたけど、
それだとiPhoneに同期できないのやめました。
こんな感じでMacminiの再利用・有効活用ができて、MacBookのディスク使用量も削減できました。
- 投稿日:2020-08-08T17:06:36+09:00
【HOMEBREW】 Mac OSのパッケージマネージャーについて node.jsやってたら学んだ事
【この記事で身に付くこと】
■HOMEBREWとは基礎
■mysqlを自身のMacへ【背景】
■node.jsでの開発途中で、mysqlが無く、先に進めなかった為
【開発環境】
■ Mac OS catalina
■ Homebrew 2.4.9
■ mysql Ver 8.0.21【実装】
HOMEBREW入れます。
*Xcodeも自動的にインストールされます。便利
mac.terminal$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" . . . // 5分くらい待ちます。下記の文は自動で出てきます。 $ Downloaded Command Line Tools for Xcodemysql入れます。
mac.terminal$ brew install mysql確認
mac.ternminal$ brew -v Homebrew 2.4.9 Homebrew/homebrew-core (git revision b32b4; last commit 2020-08-08) $ mysql --version mysql Ver 8.0.21 for osx10.15 on x86_64 (Homebrew)以上。
【まとめ】
■HOMEBREWとはMACのOSを動かす、パッケージマネージャー
■mysqlはDBの種類
例
パッケージマネージャー = app store
パッケージ = app
みたいな感じでしょうか。。
appstoreがあるからappがダウンロードできる。【合わせて読みたい】
■ 【node.js】 node.jsインストール 芋っていたけど、簡単だった件...
https://qiita.com/tanaka-yu3/items/739db5ffed24a8d9ae4b■ 【comandLine】 一言で コマンドライン 各種コマンド ターミナル
https://qiita.com/tanaka-yu3/items/b32e353bd6d7c9ebd4fb■作業環境を整えるMacOSXのパッケージマネージャ「Homebrew」のインストール方法と使い方
https://liginc.co.jp/web/tool/mac-iphone/151069
- 投稿日:2020-08-08T16:26:46+09:00
grepを使ったソースコードファイルの検索
目的
- 特定の文字列が記載されているソースコードのファイルを検索するコマンドを紹介する
実施環境
- ハードウェア環境
項目 情報 OS macOS Catalina(10.15.5) ハードウェア MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) プロセッサ 2 GHz クアッドコアIntel Core i5 メモリ 32 GB 3733 MHz LPDDR4 グラフィックス Intel Iris Plus Graphics 1536 MB コマンドの紹介
ソースコードのファイルがあるディレクトリに移動して下記コマンドを実行する。
$ grep -ilr "検索文字列" ./*上記のコマンドを実行すると「検索したい文字列」が記載されているファイル名が出力される。
コマンドとオプションの簡単な説明
- コマンド
grep
- ファイルに対して実行すると条件に合致した行を出力する。
- 条件には正規表現を使うことができる。
- よく文字列検索やログの検索に使用する。
- 大文字と小文字を区別して検索する。
$ grep "検索文字列"
と実行することで検索文字列を次含む行が出力される。- オプション
-i
または--ignore-case
- 大文字、小文字を区別せずに検索を行う。
- オプション
-l
または--files-with-matches
- 検索にヒットした行を含むファイル名のみを出力する。
- オプション
-r
または-R
または--recursive
- 再起的に検索する。
./*
- 検索ディレクトリの指定をしている。
.
がカレントディレクトリを指す。/*
がディレクトリ直下全てを指す。./*
で「カレントディレクトリ直下全て」を指定している。$ grep -ilr "検索し文字列" ./*
- 上記を踏まえると、「検索対象ディレクトリを本ディレクトリ直下の全てとして、検索文字列を検索する。検索文字列の大文字小文字を区別せず、ヒットした行があるファイル名を出力して、かつ検索は対象ファイルが存在する限り再起的に検索する」ということになる。
- 投稿日:2020-08-08T16:25:11+09:00
macOSのスクリーンショット設定を変更する
概要
macOSのスクリーンショット機能って便利ですよね。
特に
Command + Shift + 4
での部分選択しての保存は色々な場面で重宝しています。今回はそのスクリーンショット機能をさらに便利にしたときの設定変更を書き残します。
保存先ディレクトリ
デフォルトだとスクリーンショットはデスクトップに保存されます。
デスクトップにできる限りモノを置きたくない僕にとって、これは死活問題です。笑
幸いスクリーンショットの保存先はターミナルからコマンドを実行することで変更することが出来ます。
自分はダウンロードフォルダにスクショを保存したかったので、
~/Downloads
と指定しています。defaults write com.apple.screencapture location [ファイルの保存先のパス]; killall SystemUIServer;ファイル名
デフォルトの保存名は
スクリーンショット YYYY-MM-DD hh.mm.ss
となっています。ファイル名で変更できるのは大きく2点あります。
文字列部分の変更
設定した文字列でファイル名の
スクリーンショット
の部分が置換されます。空文字
""
を指定すると文字列部分を削除できます。defaults write com.apple.screencapture name "[任意の文字列]"; killall SystemUIServer;日付の有無の変更
trueで日付あり、falseで日付無しとなります。
(日付の表示形式も変えられたら良かったなあ。)
defaults write com.apple.screencapture "include-date" [true|false]; killall SystemUIServer;保存形式
デフォルトではpngで保存されます。
自分は軽量なファイルで保存したかったのでjpgで保存するようにしています。
jpg以外にも複数のファイル形式を指定できるみたいです。
defaults write com.apple.screencapture type [jpgなど]; killall SystemUIServer;まとめ
上記3点を設定することで、macOSのスクリーンショット機能がより使いやすくなるかと思います!
参考