Archive for the ‘コマンド’ Category

terminal

あるディレクトリの中の検査データを圧縮して、同じネットワーク内のNASに保管するようにしました。

シェルスクリプトで実装したのですが、そのファイル自体はシステムのどこにでも置けるようにしたかったので、ターゲットのファイルまでは絶対パスで記述していました。

しかし、絶対パスで圧縮をかけると、ファイルの展開時に/からのツリー構造がまるっと出力されるのでした。

調べてみると、展開時に必要な部分のみを取り出すような方法もあるようなのですが、面倒くさそうだったので、以下のように実装しました。

#backup.sh
#! /bin/sh
cd /home/foo/targetDir;
zip /network/nas/$(date +"%Y%m%d_%H%M").zip ./targetFile
#$(date +"%Y%m%d_%H%M").zip は 20170804_1122.zipのように現在時をファイル名とする

何か、ルートからのツリー構造を含めないように絶対パスで圧縮指定をする方法はあるのかな?

ちなみにZIPよりtar玉にしてしまった方が、サイズは半分くらいになったのですが、Windowsからデータにアクセスする人もいるのでzip圧縮を選びました。

あとは

crontab -e

を実行して

0 19 * * * /home/foo/bin/backup.sh

で毎日19時にバックアップを実行するようにしました。

余談だが、sambaを介してのNASへのアクセスはユーザー毎の権限が定められている様子。
つまり、

sudo crontab -e

などとして、システム(root)の権限で動くcronによってシェルスクリプトを実行すると、NASにアクセスができない。
あくまで、ログイン権限のある個別ユーザーでのアクセスをする必要がある。

$ crontab -e

で実行する事が重要です。

keyboard-key-success-online-computer-the-business

ロリポップのライトプランからスタンダードプランに変更したところ、SSH接続が使えるようになったので、使おうと思ったのですが、物凄くIDもパスワードも長いし、なおかつパスワードの変更ができないので、パスワード認証は早々に諦めました。

調べると鍵認証ができるようで、そちらに切り替えたので備忘録的に書いておきます。

鍵認証のやりかた

まずはローカルで鍵を生成します。

$ cd .ssh/
$ ssh-keygen -t rsa -f id_rsa_loli

この際、パスフレーズを尋ねられるので入力しておくのがいいと思います。
後で鍵を使ってログインする時に、はじめの一度だけ尋ねられるので、よりセキュアです。

さてそうすると

.ssh/id_rsa_loli
.ssh/id_rsa_loli.pub

ができたはずです。

次にサーバー側に移動

サーバー側のホームディレクトリに.sshディレクトリがなければ作ります。
そしてそのなかに、authorized_keysファイルを作ります。

$ mkdir .ssh
$ touch ./ssh/authorized_keys

そうしたらローカルの.ssh/id_rsa_loli.pubの情報をリモートの./ssh/authorized_keysに書き込まなくちゃいけません。
何らかの方法でファイルを転送して

$ cat id_rsa_loli.pub >> authorized_keys
$ chmod 600 authorized_keys

を行います。
ローカル側の秘密鍵のパーミッションも600にしないと、この鍵のパーミッションはtoo open(ガバガバすぎる)と警告が出て使えません。

最後に、ローカルの~/.ssh/にconfigファイルを作って
その中に

stricthostkeychecking no
Host loli
  HostName sshXXXXXX.lolipop.jp
  Port     2222
  User     hoge.piyo
  Identityfile id_rsa_loli

と書き加えます。
これで準備完了。

最後に

ssh loli

と入力したらパスフレーズを尋ねてくるので、それを入力すると接続出来ます。

以後は

ssh loli

と入力するだけでパスワード抜きで接続できます。

ロリポップ/SSHでパスワード無しで接続する(チカッパプラン) [俺の基地]

こちらの記事をおおいに参考にさせていただきました。
ありがとうございます。

terminal

何回か忘れたのでメモ。

du -ma | sort -rnk1 | top -20

du
-m : メガバイト表示
-a : すべて表示

sort
-r : 通常昇順表示なので、それの逆順、降順表示
-n : 数値として認識
-k1 : 一列目の要素を使って並び替え

top
-20 : トップ20行目までを表示