MacBookProの生前整理をする

PCも人間もいつかはこの世を去る。それが明日かもしれないし、数年後かもしれない。なるべく故障前にデータの移行はやっておきたい。


不要な情報の削除

まずは整理整頓の基本である不要なモノを捨てるところから。以下のような手順を踖んだら容量カツカツ状態から62GB開けることが出来た。

hardlink.pyを使ったらディスクの空き容量が劇的に増えた こういうのもあるが今回は使わない。

不要repoの削除

僕は全てのソースコードをghqで管理している。snippet的なコードは適当なファイルやディレクトリを作って書き、終わったらブログに纏めてから削除するという運用をとっている。

気になるrepoはすぐにghq getでcloneして容量を食いまくっていたので、以下のscriptでガンガン削除していった。

Fish Shellでghqを便利にする で削除scriptを作ったりもした。

$ ls ~/.ghq/github.com | peco | xargs rm -fr
$ ghq list --full-path | peco | xargs -L1 rm -fr

不要なbrew packageの削除

勢いでbrew installしたpackageなどが相当あったので要らないものは削除していった。

$ brew list | peco | xargs brew uninstall

不要なnpm/go/gem packageの削除

普段 npm i -g xxxgo get -u xxxgem install xxx などで気軽にpackageをいれてたので削除していった。

chromeのcacheやextensionの削除

意外と大事。新しい環境でも同じ体験ができるように一度消してみるのも良いと思う。

bookmarkなどは一切使わなく、url barに直接入力する運用をとってるので削除した直後は不便にはなるが、何が必要なのかわかるのでそれはそれで良い。(パスワード周りとか特にそう)

Docker関係の整理

Dockerのあれこれを断捨離する この記事がすごい良かった。Dockerは再現性のある環境なはずなので一度全てを消しても良いと思う。

このへんを適当に 叩くと大体きえてくれる。

$ docker ps -q | xargs docker rm -f
$ docker images -q | xargs docker rmi -q
$ docker system prune
$ docker image prune
$ docker container prune
$ docker volume prune

不要なDesktop Applicationの削除

入れたはいいけど使わなかったものは多いと思う。必要ならまたinstallすれば良いので一旦消すというのもあり。VSCodeなどを削除した。

不要なprocessの削除

PCを長持ちさせるためにもなるべく余計なprocessはkillしたい。Activity Monitorやhtopでprocessを見ておかしなものがないか、要らないものはないか洗い出す。

SKYSEAもウィルスバスターもウィルスだよな

データの管理

ソースコード

上記の通り、基本的にはGitHubにあげるようにしている。以前GitHubのprivate repoが有料だったので、takeokunn.xyzのterraformや前職のコードはGitLabにあげている。

GitLabで管理するのもイマイチ感あるので、GitHubか自宅サーバに移行したい。

dotfiles

開発に必要なツールのconfigは全て takeokunn/dotfiles で一括管理するようにしている。

dotfilesでは brew/apt のpackageを一括でいれられるscriptや、それぞれのツールがコマンド一発で入るようにMakefileを書いている。

emacsのconfigだけ量が多いのと、github pagesで公開したいので別repoで管理をしている

takeokunn/.emacs.d

パスワード

bitwardenで全てのwebサービスのパスワードを一括管理している。 無料だし使い勝手が良いので満足している。

セキュリティを意識して、MFAを登録できるwebサービスはなるべく全て設定するようにしている。

やはり、パスワードは人間が覚えるものではない。

ssh keys

ssh keyを紛失するとサーバにはいれなくなって詰む可能性もあるのでちゃんと管理したい。

bitwardenに ssh keys というフォルダを作ってシークレットメモに貼り付けている。

GoogleDrive

契約書やちょっとしたファイルなどを管理している。エンジニアリング以外のデータを雑にあつかえるstorage serverとして使っている。情報を整理して綺麗に運用したい。

今後の課題

  • ~/.ssh/config の管理をどうしよう
  • .skk-jisyo の管理をどうしよう
  • org/*.org の管理をどうしよう
  • ~/.local/share/fish/fish_history の管理をどうしよう

Dropboxを使うと解決するんだけど、個人的には常にDropboxを立ち上げつづけるのはうーんって感じなので良い運用を考えてる。

shellのhistoryは資産なのでこういうのをうまく管理する方法を知りたい。


やっぱりpecoが最強なのはゆるがない。