投稿者: manualmaton Page 2 of 264

VPSをWebArena→XServerへと切り替えたときのメモ。

2024年9月から利用してきた WebARENA VPS を XServer VPS に切り替えました。
理由は大きく分けて以下の3点です。

1. 物理的リソースの逼迫

旧環境では、以下のアプリが同時稼働していました。

この構成ではメモリ使用量が常に高止まりし、スワップ発生も頻繁。
安定運用のためには、より余裕のある環境が必要でした。

2. キャンペーン終了によるコスト増

WebARENA VPS の 4GB プランはキャンペーン中であれば 月額約980円 と魅力的でしたが、
終了後は 月額約1,600円 に上昇。コスト面の優位性が失われました。

3. XServer VPS を選んだ理由

  • 既にこの WordPress をホストしている会社で信頼性が高い
  • 同価格帯でも メモリ6GB と余裕がある
  • NVMe SSD 搭載でストレージ速度が段違い
  • 年額契約でキャンペーン終了後も料金安定
  • 最終的にWebARENA 4GB プランより安くなる

サーバ移行のタイムライン

  • 8/03 : 契約、初期設定(UFW / fail2ban)
  • 8/04 : 負荷試験を兼ねて Growi 導入(Apache / MongoDB / Elasticsearch / Node)
  • 8/05 : MySQL 導入
  • 8/06 : ModSecurity 導入
  • 8/07 : PHP-FPM 導入、Wasabi 接続、Nextcloud・BookStack・Laravel アプリ移行
    • この時点で「Growiを削除しなくてもいける」と確信
  • 8/08 : Redmine 6.0 新規構築に挑戦 → DB移行でエラー
    • 方針転換し Redmine 5.1 を移植(公開用)
  • 8/09 : 残りの Redmine 2件も移行完了、DNS 切替、WebARENA 解約

結果: 7日間で全サービス移行完了。Growi 常駐のまま全サイトを載せられたのは想定外というか、嬉しすぎる誤算でした。

スペック比較

項目WebARENA(旧)XServer(新)変化
CPUXeon E3-12xx (2011年)AMD EPYC Milan (2021年)大幅性能向上
vCPUコア数4コア4コア同等
メモリ4GB6GB1.5倍
ストレージ80GB SSD150GB NVMe SSD約1.9倍+高速化
ネットワーク500Mbps100Mbps低下
月額料金約1,630円(終了後)1,439円(年額換算)安価

新環境のメモリ状況

free -h
               total        used        free      shared  buff/cache   available
Mem:           5.8Gi       2.1Gi       1.6Gi       121Mi       2.5Gi       3.6Gi
Swap:          2.0Gi       623Mi       1.4Gi

Growi(MongoDB + Elasticsearch + Node)常駐のままで 3.6GiB available
旧環境より明確に余裕があり、スワップも軽減。

感想と今後

  • 前払いの安心感:年額払いで価格変動リスクなし
  • サービス統合効果:VPSとレンタルサーバを同社で一元管理
  • 展望:Redmine 6.0 アップデート挑戦、または5.1での堅牢運用

個人的に、NWの転送速度をサーバのリソースで解決するパワープレイができたのが安心です。

公開用Redmineのサーバ移行。

一般公開しているRedmine「クーケン島観光ガイド」、新規VPS、XServerへの移行に伴いデータの移設を行いました。

の構成はそのまま。コンテンツもそのまま移植しています。

ここに至るまで盛大にハマりましたが、なんとかなりました。

この時の記事は改めて記載します。

Apache全般のログローテーション設定。

サーバの移設中なので、ログに関しての記録を残しています。

概要

Webサーバ全般のメンテナンスで特に必要なのは

「ログを適切に管理する」

です。

  • 不審なアクセスの兆候
  • 自分のやらかし

を目の当たりにできる手段だからです。(特に後者に助けられたことは幾度となくあります)

そのため、Webサーバ上のログのローテーションを行い、履歴を追いやすくし、更にサーバの容量も削減するログローテーションを行います。

ログローテーションとは

ログファイルが肥大化するのを防ぐために、古いログを一定のルールに基づいて新しいログに切り替えたり、削除したりする仕組みのことです。

hogeサイトのアクセス記録である/var/log/access.logというファイルは、何も設定していないとログが記録され続けます。これによって以下の問題が起きます。

  • ログの肥大化によるサーバ容量の圧迫
    • テキストファイルぐらいと思う方がいるかも知れませんが、昨今の不正アクセスやAIサイトのクローラーのアクセス頻度は異常です。個人サイト程度でも一日数十MBはよくあります。
    • RedmineのようなWebアプリの場合、そのログは数百MBになります。
    • → このため、指定した期間でログを新しいログに差し替え、古いものは削除していくという仕組みを取ります。
  • ログの追記によるサーバのリソース増加
    • 追記自体の負荷は小さいですが、そのログをgrepなどで分析・検索する際に、巨大な単一ファイルだと非常に多くのメモリとCPUを消費します。
    • → ログを適切に分割(ローテーション)しておくことで、日々のログ分析が高速かつ軽量に行えるようになります。

これを行うべきタイミング

「Webサーバに新たなWebサイトやサービスを立ち上げたとき」 です。
試験運用などでもログは問題が起きたときのヒントとなるからです。

環境

  • Ubuntu 24.04
  • Apache 2.4
    • apt(aptitude)によるパッケージ管理でインストールしているため、Apacheの実行ユーザはwww-dataです。

備考

ディストリビューションが違ってもこの手順は有効ですが、RockyやAlma等のRHEL系のApacheの実行ユーザは通常はapacheであることに注意しましょう。

さっくりとした手順

  1. (念のため)設定を行うサイトのログをwww-dataに変えます。
  2. ログローテーションのファイルを作成します。
  3. ログローテートの設定が有効かを確認します。

ここでは、hogeサイト(/var/log/hoge)のログをローテーションする方法です。

サイトのログの実行ユーザの変更(所有者変更)

これは、Redmineのlogプラグインのように、Webインタフェース上からログを閲覧できるプラグインがある場合、Apacheを実行しているサービス自体が参照できるようにするためです。

  • chownによる所有者変更
sudo chown -R www-data:www-data /var/log/hoge

ログ一式の所有者を変えます。ログファイルの形式は自分の環境に合わせます。

  • 所有者変更確認
ls -l /var/log/hoge

ログファイルの所有者とグループがwww-dataであることを確認します。

ログローテーションファイルの作成

ファイル名やログのパスは自分の環境に合わせます。 ここを間違えると元も子もありません。

cat <<- __EOF__ | sudo tee -a /etc/logrotate.d/hoge
/var/log/hoge/*.log {
    daily
    missingok
    rotate 10
    compress
    copytruncate
    notifempty 
    su www-data www-data
__EOF__

これは、以下を行います。

  • daiy
    • 1日ごとにローテーション
  • missingok
    • ログファイルが存在しなくてもエラーにしない
  • rotate 10
    • 10世代分の古いログファイルを保持する(それ以降は破棄)
  • compress
    • 古いログファイルをgzipで圧縮する
  • copytruncate
    • ログをコピーしてから元のファイルを空にする(サービス無停止でログ切替)
  • notifempty
    • ログファイルが空の場合はローテーションしない
  • su www-data www-data
    • ローテーション後のファイルの所有者を指定

他、週ごとやログのファイル形式(日付形式)などを設定できます。こちらは運用に合わせてください。

ログローテーションの確認

  • 設定確認
sudo logrotate -dv /etc/logrotate.d/hoge

※先ほど作成したファイル名に合わせます。

ここでエラーがなければログローテーションはできています。

  • ログローテーションの即時実行

すぐにローテーションを確かめる場合は以下を実行します。強制的にログローテーションを行うコマンドです。

sudo logrotate -f /etc/logrotate.d/hoge

このコマンドを実行後、/var/log/hoge/ディレクトリ内にaccess.log.1.gzのようなファイルが作成され、元のaccess.logが空になっていれば、設定は完璧です。

迷走中のウルザデッキ。(統率者メモ2025/08/07)

かなり効率的にリストが書きやすくなったということで、改めて、メインの統率者デッキの一つであるウルザ(エスパーカラー)を据えたものをメモしておきます。

統率者

  • 《工匠の主任、ウルザ/Urza, Chief Artificer(BRC)》

デッキ 2025/08/07版

クリーチャー

  • 《石鍛冶の神秘家/Stoneforge Mystic(WWK)》
  • 《発掘現場の技師/Digsite Engineer(BRC)》
  • 《祖神の使徒、テシャール/Teshar, Ancestor's Apostle(BRC)》
  • 《エリシュ・ノーン/Elesh Norn(MOM)》
  • 《遺跡の天使/Angel of the Ruins(BRC)》
  • 《アフェットの錬金術師/Aphetto Alchemist(ONS)》
  • 《エーテリウムの達人/Master of Etherium(BRC)》
  • 《パワーストーンの神童、ウルザ/Urza, Powerstone Prodigy(BRO)》
  • 《鑑識の利器師/Forensic Gadgeteer(MKM)》
  • 《練達飛行機械職人、サイ/Sai, Master Thopterist(BRC)》
  • 《大変成家、アンクタス/Unctus, Grand Metatect(ONE)》
  • 《アーカム・ダグソン/Arcum Dagsson(2XM)》
  • 《発明の領事、パディーム/Padeem, Consul of Innovation(KLD)》
  • 《ファイレクシアの変形者/Phyrexian Metamorph(NPH)》
  • 《最高工匠卿、ウルザ/Urza, Lord High Artificer(MH2)》
  • 《エーテル宣誓会の審判人/Ethersworn Adjudicator(BRC)》
  • 《煌めくドラゴン/Shimmer Dragon(BRC)》
  • 《破片撒きのスフィンクス/Sharding Sphinx(BRC)》
  • 《思考の監視者/Thought Monitor(BRC)》
  • 《マリオネットの見習い/Marionette Apprentice(MH3)》
  • 《金線の打破者、アーミクス/Armix, Filigree Thrasher(BRC)》
  • 《無情な屍技術師/Ruthless Technomancer(NEC)》
  • 《害悪の機械巨人/Noxious Gearhulk(BRC)》
  • 《悪意の大梟/Baleful Strix(BRC)》
  • 《覇者シャルム/Sharuum the Hegemon(BRC)》
  • 《妖精の女王、ウーナ/Oona, Queen of the Fae(WOC)》
  • 《高波エンジン/Surge Engine(BRO)》
  • 《真面目な身代わり/Solemn Simulacrum(BRC)》
  • 《マイアの戦闘球/Myr Battlesphere(BRC)》

インスタント

  • 《剣を鍬に/Swords to Plowshares(BRC)》
  • 《錬金術師の挽回/Alchemist's Retrieval(VOW)》
  • 《交錯の混乱/Muddle the Mixture(RVR)》
  • 《サイクロンの裂け目/Cyclonic Rift(RVR)》
  • 《発明品の唸り/Whir of Invention(AER)》
  • 《精神壊しの罠/Mindbreak Trap(ZEN)》
  • 《ウルザの命令/Urza's Command(BRO)》
  • 《意志の力/Force of Will(ALL)》
  • 《灯の燼滅/Despark(BRC)》

ソーサリー

  • 《白の太陽の黄昏/White Sun's Twilight(ONE)》
  • 《セヴィンの再利用/Sevinne's Reclamation(C19)》
  • 《現実への係留/Anchor to Reality(NEO)》
  • 《ロリアンの発見/Lorien Revealed(LTR)》
  • 《名誉回復/Vindicate(BRC)》
  • 《至高の評決/Supreme Verdict(RVR)》

アーティファクト

  • 《太陽の指輪/Sol Ring(BRC)》
  • 《改良式鋳造所/Retrofitter Foundry(C18)》
  • 《旅人のガラクタ/Wayfarer's Bauble(M3C)》
  • 《多用途の鍵/Manifold Key(TSR)》
  • 《頭蓋骨絞め/Skullclamp(BRC)》
  • 《影槍/Shadowspear(THB)》
  • 《弱者の剣/Sword of the Meek(FUT)》
  • 《速足のブーツ/Swiftfoot Boots(VOC)》
  • 《ディミーアの印鑑/Dimir Signet(ZNC)》
  • 《オルゾフの印鑑/Orzhov Signet(TDC)》
  • 《アゾリウスの印鑑/Azorius Signet(VOC)》
  • 《頭蓋囲い/Cranial Plating(TSR)》
  • 《スカイクレイブの秘宝/Skyclave Relic(ZNR)》
  • 《語り部の杖/Staff of the Storyteller(ONC)》
  • 《永遠の大釜/The Cauldron of Eternity(ELD)》
  • 《砂丘滑り/Dune Drifter(DFT)》
  • 《開闢機関、勝利械/Shorikai, Genesis Engine(NEC)》
  • 《飛行機械の製造者/Thopter Fabricator(DFT)》

土地

  • 《古えの居住地/Ancient Den(BRC)》
  • 《囁きの大霊堂/Vault of Whispers(BRC)》
  • 《教議会の座席/Seat of the Synod(BRC)》
  • 《永岩城/Eiganjo Castle(CHK)》
  • 《水辺の学舎、水面院/Minamo, School at Water's Edge(CHK)》
  • 《死の溜まる地、死蔵/Shizo, Death's Storehouse(CHK)》
  • 《Underground Sea(3ED)》
  • 《窪み渓谷/Sunken Hollow(BRC)》
  • 《大草原の川/Prairie Stream(BRC)》
  • 《天界の列柱/Celestial Colonnade(WWK)》
  • 《闇滑りの岸/Darkslick Shores(SOM)》
  • 《秘密の中庭/Concealed Courtyard(OTJ)》
  • 《金属海の沿岸/Seachrome Coast(ZNE)》
  • 《湿った墓/Watery Grave(RAV)》
  • 《神無き祭殿/Godless Shrine(GTC)》
  • 《神聖なる泉/Hallowed Fountain(RVR)》
  • 《霧霊堂の橋/Mistvault Bridge(MH2)》
  • 《黄金沼の橋/Goldmire Bridge(MOC)》
  • 《剃刀潮の橋/Razortide Bridge(PIP)》
  • 《ラフィーンの塔/Raffine's Tower(SNC)》
  • 《秘儀の聖域/Arcane Sanctum(NCC)》
  • 《風変わりな果樹園/Exotic Orchard(WOC)》
  • 《産業の塔/Spire of Industry(PIP)》
  • 《統率の塔/Command Tower(ZNC)》
  • 《ウルザの物語/Urza's Saga(MH2)》
  • 《灰のやせ地/Ash Barrens(WHO)》
  • 《アカデミーの廃墟/Academy Ruins(MMA)》
  • 《溢れかえる岸辺/Flooded Strand(ZNE)》
  • 《汚染された三角州/Polluted Delta(ZNE)》
  • 《湿地の干潟/Marsh Flats(ZNE)》
  • 2《平地/Plains(ZNR)》
  • 2《沼/Swamp(_BR)》
  • 3 《島/Island(ZNR)》

気に入ったカードを入れ替え、入れ替えとしていきましたが

  • コンセプトが薄まってしまった
  • アーティファクトカウントがここまで減ったとは思わなかった

など、雑な調整によくあるパターンに陥りました。

ここは、もう少しコンセプトを見直し

  • 殴るデッキなのか
  • 他の軸線がほしいのか

などを見据えての、もう一度の考察となりそうです。

リスト入力の効率化とそれによって記載したデッキリスト。(2025/08/04 統率者メモ)

統率者を記録するに際し、面倒なのがデッキリストの入力。

そこで、かつて使っていたカード名変換データを活用。

カード名変換辞書データ 保管庫 - Wisdom Guild

これで、インクリメントサーチのような要領でカード名を正確に記載することができます。

こうして、つい最近、カードを入れ替えたばかりのリストをメモしておきます。

統率者

《リスの将軍、サワギバ/Chatterfang, Squirrel General(MH2)》

デッキ

クリーチャー

  • 《大釜の使い魔/Cauldron Familiar(ELD)》
  • 《骨術師の達人/Osteomancer Adept(BLB)》
  • 《ズーラポートの殺し屋/Zulaport Cutthroat(BLC)》
  • 《巣穴の魂商人/Warren Soultrader(MH3)》
  • 《無情な無頼漢/Ruthless Knave(XLN)》
  • 《悲哀の徘徊者/Woe Strider(BLC)》
  • 《ネイディアの夜刃/Nadier's Nightblade(BLC)》
  • 《実験的な菓子職人/Experimental Confectioner(WOE)》
  • 《無慈悲な略奪者/Pitiless Plunderer(RIX)》
  • 《ヘイゼルの醸造主/Hazel's Brewmaster(BLC)》
  • 《無情な屍技術師/Ruthless Technomancer(NEC)》
  • 《溜め込む親玉/Hoarding Broodlord(MOM)》
  • 《エルフの神秘家/Elvish Mystic(M15)》
  • 《ラノワールのエルフ/Llanowar Elves(DOM)》
  • 《森を護る者/Sylvan Safekeeper(MH3)》
  • 《金のガチョウ/Gilded Goose(BLC)》
  • 《極楽鳥/Birds of Paradise(RAV)》
  • 《裕福な亭主/Prosperous Innkeeper(BLC)》
  • 《茨越えの餌あさり/Thornvault Forager(BLB)》
  • 《献身のドルイド/Devoted Druid(SHM)》
  • 《ペレグリン・トゥック/Peregrin Took(LTR)》
  • 《不屈の補給兵/Tireless Provisioner(BLC)》
  • 《リスの小走り/Scurry of Squirrels(BLC)》
  • 《小走り樫/Scurry Oak(MH2)》
  • 《永久の証人/Timeless Witness(TDC)》
  • 《秘密を知るもの、トスキ/Toski, Bearer of Secrets(BLC)》
  • 《深き森の隠遁者/Deep Forest Hermit(BLC)》
  • 《悪魔の職工/Fiend Artisan(IKO)》
  • 《根花のヘイゼル/Hazel of the Rootbloom(BLC)》
  • 《歩行バリスタ/Walking Ballista(AER)》
  • 《アカデミーの整備士/Academy Manufactor(BLC)》
  • 《カルドーサの炎魔/Kuldotha Flamefiend(MBS)》
  • 《マイアの戦闘球/Myr Battlesphere(TDC)》

インスタント

  • 《命取りの論争/Deadly Dispute(BLC)》
  • 《〈切断マジック〉/Saw in Half(BLC)》
  • 《新緑の命令/Verdant Command(MH2)》
  • 《蓄え放題/Cache Grab(BLB)》
  • 《召喚の調べ/Chord of Calling(M15)》
  • 《暗殺者の戦利品/Assassin's Trophy(MKM)》
  • 《ウィンドグレイスの裁き/Windgrace's Judgment(BLC)》

ソーサリー

  • 《発掘/Unearth(A25)》
  • 《群がり庭の虐殺/Swarmyard Massacre(BLC)》
  • 《根鋳造の弟子入り/Rootcast Apprenticeship(BLC)》
  • 《大渦の脈動/Maelstrom Pulse(BLC)》

エンチャント

  • 《清掃人の才能/Scavenger's Talent(BLB)》
  • 《アクロゾズの約定/Promise of Aclazotz(LCC)》
  • 《想起の拠点/Bastion of Remembrance(BLC)》
  • 《美食家の才能/Gourmand's Talent(BLC)》
  • 《パンくずの道標/Trail of Crumbs(ELD)》
  • 《獣使いの昇天/Beastmaster Ascension(BLC)》
  • 《イトリモクの成長儀式/Growing Rites of Itlimoc(XLN)》
  • 《殺しのサービス/Killer Service(NCC)》
  • 《似通った生命/Parallel Lives(WOT)》
  • 《陰湿な根/Insidious Roots(MKM)》

アーティファクト

  • 《太陽の指輪/Sol Ring(BLC)》
  • 《頭蓋骨絞め/Skullclamp(BLC)》
  • 《魔女のかまど/Witch's Oven(ELD)》
  • 《恐竜の遺伝子/Dino DNA(REX)》
  • 《アシュノッドの供犠台/Ashnod's Altar(5ED)》
  • 《ヌカコーラ自動販売機/Nuka-Cola Vending Machine(PIP)》
  • 《前兆の時計/Clock of Omens(M13)》
  • 《旗印/Coat of Arms(EXO)》
  • 《囀り吐き/Chitterspitter(BLC)》

プレインズウォーカー

  • 《飢餓の潮流、グリスト/Grist, the Hunger Tide(MH2)》

バトル

  • 《イコリアへの侵攻/Invasion of Ikoria(MOM)》

土地

  • 7《沼/Swamp(BLB)》
  • 8《森/Forest(BLB)》
  • 《統率の塔/Command Tower(BLC)》
  • 《風変わりな果樹園/Exotic Orchard(BLC)》
  • 《祖先の道/Path of Ancestry(BLC)》
  • 《黄昏のぬかるみ/Twilight Mire(BLC)》
  • 《森林の墓地/Woodland Cemetery(TDC)》
  • 《屍花の交錯/Necroblossom Snarl(BLC)》
  • 《疾病の神殿/Temple of Malady(BLC)》
  • 《新緑の地下墓地/Verdant Catacombs(ZEN)》
  • 《眠らずの小屋/Restless Cottage(WOE)》
  • 《ラノワールの荒原/Llanowar Wastes(BLC)》
  • 《憑依されたぬかるみ/Haunted Mire(TDC)》
  • 《ゴルガリの腐敗農場/Golgari Rot Farm(BLC)》
  • 《草むした墓/Overgrown Tomb(RAV)》
  • 《群がりの庭/Swarmyard(BLC)》
  • 《緑ばんだ沼/Viridescent Bog(BLC)》
  • 《汚れた森/Tainted Wood(BLC)》
  • 《不気味な辺境林/Grim Backwoods(BLC)》
  • 《見捨てられたぬかるみ、竹沼/Takenuma, Abandoned Mire(NEO)》
  • 《成長の揺り篭、ヤヴィマヤ/Yavimaya, Cradle of Growth(MH2)》

動き

  • 統率者自身がコンボパーツとなっている黒緑のリスデッキ。

パーツが何かしらとコンボを組むため、ゲームチェンジャーが入っていなくても戦えることができます。

いつもの統率者会の中でも勝率は高め(であるが故に真っ先に狙われる)なので、マークされないような動きが結構重要です。

CPUとメモリ情報を表示するワンライナー。

概要

サーバスペックの要となる

  • CPU
  • コア数
  • メモリ量
  • スワップ量

を一度に表示するワンライナーです。

ワンライナー内容

awk 'BEGIN {FS=":"; OFS="\t"} /^model name/ && !cpu_model {cpu_model=$2; gsub(/^ */, "", cpu_model)} /^processor/ {cores++} /^MemTotal/ {mem_total=$2} /^MemAvailable/ {mem_avail=$2} /^SwapTotal/ {swap_total=$2} END {printf "CPUモデル\t: %s\n", cpu_model; printf "CPUコア数\t: %s\n", cores; printf "合計メモリ\t: %.2f GiB\n", mem_total/1024/1024; printf "利用可能メモリ\t: %.2f GiB\n", mem_avail/1024/1024; printf "合計スワップ\t: %.2f GiB\n", swap_total/1024/1024}' /proc/cpuinfo /proc/meminfo

実行結果

CPUモデル       : AMD EPYC-Milan Processor
CPUコア数       : 4
合計メモリ      : 5.78 GiB
利用可能メモリ  : 5.34 GiB
合計スワップ    : 2.00 GiB

と、分かりやすい表示で一気に表示してくれます。

『ユミアのアトリエ』アップデート後の機能モジュール「マナ間欠晶」による特製結晶「CT短縮」の探し方。

こちらの記事。2025/07/23で追加された新しい家具(機能モジュール)を利用したCT短縮の探し方をコメントでご提供戴きました。

曰く

帝国第八研究所付近のハウジングエリアでマナ間欠晶(機能モジュール)を設置して作成したマナ間欠晶のリザルトでCT短縮を確認しました。
10回試行
easy 2回中2回(2個、1個の計3個)
normal 5回中0回
hard 3回中0回

とのことで、早速やってみます。

ハウジングエリア「帝国第八研究所」付近

場所はこちら。リグナス地方にあります。

ここに、アップデートで追加された「マナ間欠晶」を設置します。

調べるとエナジーが消費されると共に、マナ う争奪戦の赤いラインが出て来ます。

対岸の結晶を調べて戦闘。

難易度EASY表示のリザルトで、

お目当ての「CT短縮」が出るようになりました。

頻度

  • 争奪戦の難易度がEASYでのみ確認しています。(他の難易度は確率が低いだけかも知れません)
  • 地味に「アイテム使用回数増加」も多用する結晶なので助かります。

改めて、情報ありがとうございます。

出先での記録環境。

中古で購入したThinkPadがもたらしたのは、「出かけることのハードルの低さ」です。

常に行う

  • 日記
  • ブログの更新
  • 体調、入出金などライフログの記録

が、自宅で行うことなく可能になったからです。

喫茶店で食事を取りながらの入出金記録を行い(この食事代も記録しながら)

また、出先に椅子とテーブルがあると分かっていれば、このように、アナログな記録も同時に実施することができます。

記録するための道具がそろっていれば、記録する環境は問わない(というか状況に合わせて選べる)

というのが分かったのが、このThinkPadでの収穫です。

入力体験の統一。(分割キーボード→ThinkPadキーボードへの移行)

こちらの記事の続きです。

実際に使ってみて

  • 分割キーボード+トラックボールよりも指がホームポジションから離れないために作業に集中できること
  • 思った以上に自分の指が好む打刻感だったこと

を踏まえ、メインのキーボードをこちらに差し替えました。

改めて思ったのが、デスク周りが格段に広くなったということ。

そして、「ある程度市場に出回っている現行品」のため、何かあっても入手しやすいこと」は大きいです。

今まで愛用していた分割キーボードの日本代理店が撤退し、今後の入手をどうしようかと思っていただけに、ThinkPad購入によるキーボードの使いやすさが飛び込んできたという形です。

Ubuntuでhistoryの履歴を追いやすくするシェルスクリプト並びにコマンド化。

概要

設定変更時、過去のコマンド履歴を確認するため

history | grep command

として過去の履歴を確認します。これをシェルスクリプトの力で解決します。(スクリプト作成にはGemini pro 2.5を利用)

スクリプト

  • histgrep.sh
#!/bin/bash

# スクリプトに引数が渡されたかどうかで処理を分岐
if [ "$#" -gt 0 ]; then
  # 引数が存在する場合、その値を検索文字列として使用
  SEARCH_TERM="$1"
else
  # 引数がない場合、対話式でユーザーに入力を促す
  read -p "探したいコマンドを入力してください: " SEARCH_TERM
fi

# 検索文字列が空の場合はエラーメッセージを出して終了
if [ -z "${SEARCH_TERM}" ]; then
  echo "検索文字列が入力されていません。"
  exit 1
fi

# historyコマンドの代わりに、履歴ファイルを検索する
HISTFILE_PATH="${HISTFILE:-$HOME/.bash_history}"

echo "実行履歴から「${SEARCH_TERM}」を含むコマンドは以下の通りです。"
grep "${SEARCH_TERM}" "${HISTFILE_PATH}"

これを保存して、

chmod +x histgrep.sh

で実行権限をつけます。

コマンド実行例

引数無しの対話型

./histgrep.sh
探したいコマンドを入力してください: bundle
実行履歴から「bundle」を含むコマンドは以下の通りです。
sudo -u www-data bundle install --without development test --path vendor/bundle
sudo -u www-data bundle install
sudo -u www-data bundle install --without development test --path vendor/bundle
sudo -u www-data bundle exec gem install rake
sudo -u www-data bundle install --without development test --path vendor/bundle
sudo -u www-data bundle install --without development test --path vendor/bundle
sudo bundle install

と、探したい文字列を含む履歴をhistory(正確には履歴ファイル)から参照します。

引数型

./histgrep.sh configtest
実行履歴から「configtest」を含むコマンドは以下の通りです。
sudo apache2ctl configtest

このように、探したい文字列を引数とすることで、そのコマンドを探せます。

コマンド化

これをコマンド化します。

sudo ln -sf /path/to/script/directory/histgrep.sh /usr/local/bin/histgrep

/path/to/script/directory/histgrep.shはフルパスで、スクリプトがある場所を指定します。

which histgrep

で、/usr/local/bin/histgrepを確認。

後は、作業中でも

histgrep tar

などとすれば、過去に実行したコマンドの履歴を容易に参照することができます。

Page 2 of 264

Powered by WordPress & Theme by Anders Norén