だぱんだブログ

プログラミングを中心にした忘備録代わりのメモ

Synology NASに外付けUSBドライブ(SSD)を接続する

先日Googleフォトの代替としてNAS(Synology NAS ds220j)を導入しました。

NASを導入して、先ず行うのが写真や動画データの移行だと思います。が、Synology MomentsやSynology Photosなどのマルチメディア管理ソフトで移行しようとすると1枚アップロードするのに数秒かかっていて、数万枚ある写真や動画データの移行には耐えられそうにない。

そこで元々写真や動画データを保管していた外付けUSBドライブ(SSD)をSynology NASへ直刺ししてコピーすることにしました。

 

①USBドライブ(SSD)のマウント

とりあえず何も考えず、NAS裏のUSBポートに挿してみると

以下のように「外部デバイス」の一覧に表示される。

f:id:hornetdx251:20210605235903p:plain

「コントロールパネル」→「外部デバイス

exFATファイルシステムがサポートされてないので、パッケージセンターからインストールして下さいとなっている。

exFATをインストール>のリンクを踏むとパッケージセンターが開くので「インストール」を押下する。

f:id:hornetdx251:20210606000245p:plain

インストールが完了すると「ファイルシステムの形式」が "exfat" となり認識されたようだ。

f:id:hornetdx251:20210606000423p:plain

ファイルシステムの形式(exFAT)が認識されている

「外部デバイス」→「設定」からアクセス権が設定できるようなので、適切なアクセス権を設定する。

f:id:hornetdx251:20210606001045p:plain

「外部デバイス」→「設定」でアクセス権を設定する

②ローカルマシンからのSSHアクセス

つぎはローカルマシンからのSSHアクセスだ。

まず、コントロールパネルの設定で「SSHサービスを有効化する」にチェックを入れる。

f:id:hornetdx251:20210606001743p:plain

「コントロールパネル」→「端末とSNMP」→「端末」

「コントロールパネル」→「情報センター」→「ネットワーク」で、「IPアドレス」を確認する。ここでは "192.168.0.5" である。

f:id:hornetdx251:20210606002238p:plain

IPアドレス(192.168.0.5)の確認

あとはTerminalアプリなどのSSHクライアントから接続を試みる。

ここでは "volumeUSB1" という名前でマウントされていた。

user@host ~$ ssh 192.168.0.5
user@ds220j :~/$ ls /
bin     etc           lib    lost+found  root  sys  var           volumeUSB1
config  etc.defaults  lib32  mnt         run   tmp  var.defaults
dev     initrd        lib64  proc        sbin  usr  volume1

 

③USBドライブからNASへのデータのコピー

あとはSynology Photosの写真や動画データの保存先へ移動して

user@ds220j:~$ cd Photos/PhotoLibrary/

外付けUSBの写真データをここにコピーすれば完了です。

(バックグラウンドJobとして実行する為にnohupで実行しています。)

user@ds220j:~/Photos/PhotoLibrary$ nohup cp -r /volumeUSB1/usbshare/path/to/picture/* . &

 

コピー実行後、Synologyの動作が異常に重くなってしまった。

プロセスを確認するとSynology Photos関連のプロセスがたくさん走っている。多分サムネイルやメタデータ作成、AIによるIndexingなど画像の下処理をやっているんだと思われる。700GB近く一気に写真と動画データを上げたのでその処理が大量にStackしてしまったんだろう。数日放置してみることにする。

user@ds220j:~/Photos/PhotoLibrary$ top
  PID USER      PR  NI    VIRT    RES  %CPU  %MEM     TIME+ S COMMAND                                                                                                                                                                 
16721 root      30  10   60.1m  29.7m 100.0 6.129   0:05.51 R /var/packages/CodecPack/target/bin/ffmpeg41 -threads 1 -i /volume1/homes/makita/Photos/PhotoLibrary/YYYYMMDD/IMG_0424.MOV -+
11414 postgres  20   0  102.2m  85.1m 56.21 17.55   3:24.49 D postgres: SynologyPhotos synofoto [local] INSERT                                                                                                                        
11575 root      20   0  378.2m  10.4m 16.99 2.138   0:48.02 S /var/packages/SynologyPhotos/target/usr/sbin/synofoto-task-center                                                                                                       
 5587 root      10 -10   41.4m   5.1m 6.536 1.057   0:06.00 S /usr/syno/sbin/synosnmpcd                                                                                                                                               
11311 Synolog+  20   0    6.0m   0.8m 5.229 0.157   0:12.30 S /var/packages/SynologyPhotos/target/daemon/pgbouncer -q
(中略)                                                                                                                                               
16738 root      20   0   18.0m   5.4m 1.307 1.115   0:00.02 D /var/packages/SynologyPhotos/target/usr/bin/synophoto-bin-metadata-wrapper -i /var/services/homes/makita/Photos/PhotoLibrary/YYYYMMDD/DSC_2772.JPG        
16740 root      20   0   18.0m   7.3m 1.307 1.513   0:00.02 D /var/packages/SynologyPhotos/target/usr/bin/synophoto-bin-metadata-wrapper -i /var/services/homes/makita/Photos/PhotoLibrary/YYYYMMDD/DSC_2773.JPG        
(省略)                                                         

 

AWS無料枠でWordpressセットアップ

EC2インスタンス立ち上げ

  • AWSのサービスから「EC2」を検索→インスタンスを起動
    • ステップ1:Amazon マシンイメージの選択
      Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-0ca38c7440de1749a (64 ビット x86) / ami-0d14de74618b313e2 (64 ビット Arm) を選択
    • ステップ6:セキュリティグループの設定
      • 新しいセキュリティグループを作成する(launch-wizard-1)
      • HTTP、HTTPSを追加
    • 起動時にkey-pairを選択、または新規作成(hoge.pem)

Elastic IPアドレスの生成とEC2インスタンスへの紐付け

RDSインスタンス立ち上げ

  • AWSのサービスから「RDS」を検索→データベースの作成
    • データベース作成方法を選択:標準作成
    • エンジンのオプション
      • エンジンのタイプ:MySQL
    • テンプレート:無料枠
    • 設定
      • DBクラスター識別子:任意(database-1)
      • 認証情報の設定
        • マスターユーザ名:任意(admin)
        • パスワード:任意(password)
    • 接続
      • VPNセキュリティグループ:新規作成(rds-wordpress)
    • 追加設定
      • 最初のデータベース名:任意(wordpress_db)

ドメインの取得と紐付け

  • ドメインの登録(3日かかる)
    • AWSのサービスから「Route53」を検索→ドメインの登録
    • 希望のドメインを入力して、「チェック」
    • チェックの結果「利用可能」となれば、「カートに入れる」→「続行」
  • ドメインとIPの紐付け

ApatchWordpressのインストール

  • EC2へログイン
sudo chmod 600 ~/.ssh/hoge.pem # 秘密鍵のPermissionを変更
ssh -i ~/.ssh/hoge.pem ec2-user@ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com # @以降はEC2のインスタンスをクリックして「パブリック IPv4 DNS」で確認可能
sudo yum install httpd
sudo systemctl start httpd.service # 開始
sudo systemctl status httpd.service # 確認
●httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2021-05-16 07:08:56 UTC; 2s ago
     Docs: man:httpd.service(8)
...
sudo systemctl enable httpd.service # 自動起動設定
sudo chown ec2-user -R /var/www/html
wget http://ja.wordpress.org/latest-ja.tar.gz # パッケージのダウンロード
tar xzvf latest-ja.tar.gz # パッケージの解凍
cd wordpress
cp wp-config-sample.php wp-config.php 
vi wp-config.php
  • wp-config.phpへRDS情報の入力
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'wordpress_db' );

/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'admin' );

/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'password' );

/** MySQL のホスト名 */
define( 'DB_HOST', 'wordpress-db.XXXXX.ap-northeast-1.rds.amazonaws.com' ); # RDSのインスタンスを選択すると「エンドポイント」で確認可能
/**#@+
 * 認証用ユニークキー
 *
 * それぞれを異なるユニーク (一意) な文字列に変更してください。
 * {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org の秘密鍵サービス} で自動生成するこ>ともできます。
 * 後でいつでも変更して、既存のすべての cookie を無効にできます。これにより、すべてのユーザーを強制的に再>ログインさせることになります。
 *
 * @since 2.6.0
 */
define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );
sudo amazon-linux-extras enable php7.4
sudo yum clean metadata
sudo yum install php-cli php-pdo php-fpm php-json php-mysqlnd
sudo systemctl restart httpd.service
cd ..
mv wordpress /var/www/html/
sudo chown -R apache:apache /var/www/html/

MacのTerminalの初期設定

初期セットアップ時の必要最低限の設定メモ

.bash_profile .bashrcをつくる

ホームディレクトリに.bash_profileを作成し、 .bashrcを読み込むようにする。

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

.bashrcを作成し、設定を記述。以下はサンプル。

alias ls='ls -G' # lsに色をつける
PS1='\u@\h \W\$ ' # プロンプトの見栄えを変更

.vimrcをつくる(Vimmerのみ)

ホームディレクトリに.vimrcを作成

syntax on # 色をつける

host名(マシンの名前)の変更

terminalを使うにあたってhost名がデフォルトだと 「Taro SuzukiNo-Makbook」 みたいになっていてCUIで扱いにくいので変更する。 システム環境設定→共有→コンピュータ名→編集

user名の変更

terminalを使うにあたってuser名をCUIで扱いやすい文字列に変更する。

ホームディレクトリのフォルダ名を英語に変更

terminalを使うにあたってデフォルトだとフォルダ名が日本語になっていて言語切り替えが面倒なので変更する。 https://qiita.com/is0me/items/0b7b846f1f0860629950

テスラ紹介コードで1,500km分のスーパーチャージャー無料特典をもらう方法

テスラ車購入を検討中の方

 

通常のテスラサイトからポチってもいいのですが、既にテスラ車を購入した人には全て「テスラ紹介コード」が付与されています。そのリンク経由でポチれば、紹介した人、された人お互いに1,500kmのスーパーチャージャー無料特典が貰えます。

 

ということで、

スーパーチャージャーの無料特典欲しさにブログを書きます。

良かったら以下の手順で私の紹介コードを使ってオーダーして下さい。

 

1)以下リンクをクリック

ts.la

 

2)リンク先のサイトから

ご自身の注文される「車種」、「カスタム or 在庫車」を選択

f:id:hornetdx251:20210529120939p:plain

テスラ紹介コードリンク先の画像

3)特典が表示されるので、「デザインする」をクリック

(在庫車を選択した場合は「次へ」をクリック)

f:id:hornetdx251:20210529121339p:plain

モデル3、カスタムオーダーを選んだ際の画面

4)あとは通常時と同じオーダー画面になります。

ご自身の希望に合わせてオーダー下さい。

f:id:hornetdx251:20210529122055p:plain

通常のオーダー画面

 

以上になりまっす。

 

GIMPで日本語縦書き入力

環境

OS : Mac OSX 11 (El Captan)
GIMP : 2.8.14

フォントのインストール

まず、フォントのインストール

下記へフォントファイル(.ttfなど)を配置してGIMPを再起動
/Users/<ユーザ名>/Library/Application Support/GIMP/2.8/fonts

今回はchihayaGothic.ttfをインストール
f:id:hornetdx251:20160319185909p:plain

縦書き入力プラグインのインストール

まず、ここからダウンロード

下記フォルダへプラグインファイル(tategaki)を配置して再起動
/Users/<ユーザ名>/Library/Application Support/GIMP/2.8/plug-ins

初期設定

フォントディレクトリの指定
「メニュー」→「ReddocPlug」→「tategaki」と選択する

最初はフォントが選べない状態なので
f:id:hornetdx251:20160319190733p:plain

「FontDir」タブで先ほどフォントをインストールしたディレクトリを指定しておく(GIMP再起動後有効)
f:id:hornetdx251:20160319190856p:plain

このままだと、日本語のIMEが切り替わらないので下記を行う
/Applications/GIMP.app/Contens/Resources/etc/gtk-2.0/gtk.immodules
のim-quartz.soへのパスが@executable_path~と相対パスになっているので絶対パス
/Applications/GIMP.app/Contents/Resources/lib/gtk-2.0/2.10.0/immmodules/imquartz.so
に書き換え

使い方

「メニュー」→「ReddocPlug」→「tategaki」と選択する

f:id:hornetdx251:20160319190508p:plain

PythonでRSS取得

feedparserを用いたRSSの取得
日付は表示用(文字列)とソート用(数値)の2種類用意

# coding:utf-8

import feedparser

feedurls = {
    "<サイト名>":"http://<URL>"}

for site, url in feedurls.iteritems():
    feeds = feedparser.parse(url)
    for feed in feeds.entries:
        print site
        print feed.title
        print feed.link
        print feed.date
        print feed.description
        d = feed.date_parsed
        sortkey = "%04d%02d%02d%02d%02d%02d" % (d.tm_year, d.tm_mon, d.tm_mday, d.tm_hour, d.tm_min, d.tm_sec)
        print sortkey

Mac+Python+MySQLでデータベース接続

前回環境構築までやったので今回は接続

hornetdx251.hatenablog.com

コードは以下
(日本語の箇所は自分のデータベースに合わせて直してね)

# coding:utf-8

import MySQLdb

con = MySQLdb.connect(
        host="ホスト名",
        db="データベース名",
        user="ユーザ名",
        passwd="パスワード",
        charset="utf8")

cursor = con.cursor()
sql = "select * from テーブル名"
cursor.execute(sql)
result = cursor.fetchall()

for row in result:
    print row[0].encode("utf-8")

cursor.close()
con.close()