<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Linux on Ingenboy.inc</title>
    <link>https://blog.ingenboy.com/tags/linux/</link>
    <description>Recent content in Linux on Ingenboy.inc</description>
    <image>
      <title>Ingenboy.inc</title>
      <url>https://blog.ingenboy.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://blog.ingenboy.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.152.2</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 May 2025 20:11:44 +0900</lastBuildDate>
    <atom:link href="https://blog.ingenboy.com/tags/linux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Problem_site2site</title>
      <link>https://blog.ingenboy.com/post/problem_site2site/</link>
      <pubDate>Fri, 02 May 2025 20:11:44 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/problem_site2site/</guid>
      <description>&lt;p&gt;#背景&lt;/p&gt;
&lt;p&gt;VPNを使って拠点間通信（Site-to-Site Routing）を構成していると、
思ったようにパケットが届かないケースがあります。今回は以下の構成で発生した通信不通トラブルと、その解決方法を共有します。&lt;/p&gt;
&lt;h2 id=&#34;-ネットワーク構成&#34;&gt;🔧 ネットワーク構成&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[A] 100.64.1.61 (100.64.1.0/22)
↓
[B] 100.64.1.27 (OpenVPNクライアント) → VPN → [C] OpenVPNサーバー → [D] 192.168.1.4 (192.168.1.0/24)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;目標：AからD（192.168.1.4）への通信を通すこと。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-問題の症状&#34;&gt;❗ 問題の症状&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;BからDには通信可能（VPN経由で192.168.1.4が見える）&lt;/li&gt;
&lt;li&gt;AからDへの通信は届かない&lt;/li&gt;
&lt;li&gt;しかしDからAへの通信（返信）は可能&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-原因&#34;&gt;🧠 原因&lt;/h2&gt;
&lt;p&gt;Aは &lt;code&gt;192.168.1.0/24&lt;/code&gt; サブネットに属していないため、この宛先へのパケットをデフォルトゲートウェイに送ってしまっていた。&lt;/p&gt;
&lt;p&gt;つまり、&lt;strong&gt;「行きのルート」が不在&lt;/strong&gt;だったわけです。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-解決策aに静的ルートを追加&#34;&gt;✅ 解決策：Aに静的ルートを追加&lt;/h2&gt;
&lt;p&gt;一時的にルートを追加する場合は以下のコマンドを実行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ip route add 192.168.1.0/24 via 100.64.1.27
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで、Aは目的地 192.168.1.4 へのパケットをVPN中継ノードBに送るようになります。&lt;/p&gt;
&lt;p&gt;UbuntuでNetplanを使用している場合、/etc/netplan/xxx.yaml を以下のように修正します：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: false
      dhcp6: false
      addresses: [100.64.1.61/22]
      routes:
        - to: default
          via: 100.64.1.1
        - to: 192.168.1.0/24
          via: 100.64.1.27
      nameservers:
        addresses: [100.64.1.1, 8.8.8.8, 8.8.4.4]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ちなみに、netplan applyをやって疎通できなくなると困ることってありますよね。
そんな時のためにこれがあります&lt;/p&gt;</description>
    </item>
    <item>
      <title>cronで定期的にmysqldumpし、定期的にバックアップサーバに送る方法（バックアップ鯖が取りに来る）</title>
      <link>https://blog.ingenboy.com/post/mysql_dump_cron/</link>
      <pubDate>Sat, 28 Sep 2024 18:45:09 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/mysql_dump_cron/</guid>
      <description>&lt;h1 id=&#34;背景&#34;&gt;背景&lt;/h1&gt;
&lt;p&gt;Mysqlをデータベースにしてサービスを運営している。
しかし現在、Mysqlのバックアップは取っておらず、元データが消えたら全データが消える状況である。
そこで、元サーバで毎日指定された時刻にmysql_dumpをし、バックアップサーバが元サーバからデータを持ってく量なcronジョブ
を作りたいと思っている。&lt;/p&gt;
&lt;p&gt;注意点としては、本番サーバはグローバルに、バックアップ鯖はローカルネットワークにいるので、グローバルからローカルには送れないってこと。（vpnとか貼ったらいけるけどめんどい）ので、バックアップサーバもcronでscpを動かして定期的に鶏肉という感じ。&lt;/p&gt;
&lt;h1 id=&#34;ac&#34;&gt;AC&lt;/h1&gt;
&lt;p&gt;毎日元サーバから吐かれたmysqldumpファイルがバックアップサーバに置かれた状態になっている&lt;/p&gt;
&lt;h1 id=&#34;関連技術&#34;&gt;関連技術&lt;/h1&gt;
&lt;h2 id=&#34;cron&#34;&gt;cron&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://qiita.com/waokitsune/items/1a9d2a6a481df378f478&#34;&gt;参考&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;設定ファイル&#34;&gt;設定ファイル&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/var/spool/cron/crontabs/&amp;lt;user name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;が設定ファイルです。
rootユーザ用のcronを設定する方法は、&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo vim /var/spool/cron/crontabs/root
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;って感じで開けます。
このファイルに実行したいジョブと実行日時（実行間隔も指定可能）を指定します。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;0 * * * * /home/backup.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;五つの*が何を表すかですが、
「分 時 日 月 曜日」&lt;/p&gt;
&lt;p&gt;結構忘れがちなのが、シェルスクリプトのパーミッションでexecuteが入ってなくてエラーになることが多いので気をつけて。（上の/home/backup.sh）&lt;/p&gt;
&lt;h1 id=&#34;ログについてubuntu&#34;&gt;ログについて（ubuntu）&lt;/h1&gt;
&lt;p&gt;デフォルトではログが出力されないようになっている。
&lt;a href=&#34;https://qiita.com/pyon_kiti_jp/items/31ab0840e8e67ffb2c3c&#34;&gt;こちらを参考にログを出力するように設定を変える&lt;/a&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vi /etc/rsyslog.d/50-default.conf


# コメントアウト
cron.*                         /var/log/cron.log

# リスタート
service rsyslog restart
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;mysqldump&#34;&gt;mysqldump&lt;/h1&gt;
&lt;h2 id=&#34;参考文献&#34;&gt;参考文献&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://qiita.com/PlanetMeron/items/3a41e14607a65bc9b60c&#34;&gt;こちら&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上のによると、特定のユーザが持っているデータベースをダンプする方法は以下のようになるかな。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mysqldump -u hoge -p -B some_database &amp;gt; database.sql
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ちなみに、パスワードの入力まで自動でやるとするとこんな感じです。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;0 21 * * * mysqldump -u -hogehoge --password=&amp;#34;hogehoge&amp;#34;  --no-tablespaces DB_NAME &amp;gt; /hoge/database.sql
&lt;/code&gt;&lt;/pre&gt;&lt;h1 id=&#34;毎日2101にscpでとってくるcron-jobをしくむさらにdbへの流し込みもやってくれると最高だよね&#34;&gt;毎日21:01にSCPでとってくるcron jobをしくむ。さらにdbへの流し込みもやってくれると最高だよね〜。&lt;/h1&gt;
&lt;h2 id=&#34;まずscpでpasswordを打たなくていいように鍵をリモートサーバに登録&#34;&gt;まず、scpでpasswordを打たなくていいように鍵をリモートサーバに登録&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo vim /etc/ssh/sshd_config

# 以下をコメントアウト
PubkeyAuthentication yes
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;ssh-keygenで秘密鍵と公開鍵を生成&#34;&gt;ssh-keygenで秘密鍵と公開鍵を生成&lt;/h2&gt;
&lt;p&gt;パスフレーズを入れないのがポイント&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
