それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

MySQL/mariadb でパスワードをコマンドラインから指定する

MySQL でパスワードをコマンドラインから指定する

mysql で特定のコマンドを自動実行しようとしたり、定形のSQLを自動実行するときに、パスワードを外部から指定したい。

自動でバックアップを取りたい時など、パスワードを外部から指定したいことは山ほどある。

とくにdockerなどの dockerfile で指定するときにこれがないと データベースの初期化や初期データ投入をpythonrubyスクリプトに頼ることになり不便だ。

mysql -u jump -h 10.1.2.1 --password=my_user_password db

パスワードをプロンプトではなくコマンドで直接指定できるのはちょっとだけ便利だけど。

さらに便利にする

パスワードを平分で残すのはさすがに、ちょっとね。ということも在るので、これを環境変数にすると良い。

## 何処か別の場所で 
export $MY_MariaDB_PASSWORD=my_user_password
## その後パスワードを利用
mysql -u jump -h 10.1.2.1 --password=$MY_MariaDB_PASSWORD db

こうすると、あちこちにパスワードを平文記述しなくて済む。 なんなら、これをSSH経由で実行すると更に便利。

Dockerなどでcompose をつかってDBを上げてるときに、いちいちインスタンスにログイン( exec -it ) せずにMySQLに対しメンテナンスを実行できるので重宝する。

バックアップなどにも

ssh のコマンド起動と、環境変数gzip の合わせ技で戦うことも出来る。

ssh tekitou-server "mysqldump -u jump -h 10.1.2.1 --password=$MY_MariaDB_PASSWORD db" | gzip > $(date -I ).sql.gz

2018-05-22

加筆

rsync でコピー先のパーミッションを統一する

個人ファイルを共有サーバーにrsync転送していて、転送先では共有777 にしたいんだけど

rsync はバックアップ時にパーティションが維持されるのはいいけれど、維持されるのが困ることも多い。 かと言ってパーティション維持を外すとumaskやsetguid が必要になって不便。

たんに共有サーバーに同期しているだけなので、0777でいいんです。

同期したいけど、パーミッションは要らない。

共有サーバーに同期するだけだから、パーミッションは簡単でいい。

--chmod オプションを使う。

chmod オプションをを使うと、転送先のファイルのパーミッションを設定できて便利。

rsync --chmod=u+rwx,g+rwx,o+rwx src dest

指定する方歩はchmod コマンド分かってたらだいたい同じ。

まとめて設定するなら a 使う

rsync --chmod=a+rwx src dest

ファイルとディレクトリでパーミッションを変えたい

ディレクトリとファイルではパーミッションの意味がちょっと違うじゃん? xの意味とか、r の意味とか。

chmod オプションにはディレクトリにも対応できるらしい

rsync --chmod=Da+x src dst

すでにあるファイルにはどうする?

コピー先にファイルが有る場合は、chmodオプションをの範囲外なので、--perm を使うと便利

勿論のことだけど -p フラグにも注意

rsync -rl --chmod=a+rwx src dest だとだめでした
rsync -prl --chmod=a+rwx src dest

でちゃんと 777 になりました。

rsync は奥が深い

ちなみに chmod の書式は

chmod a+x  ファイル名 ## で allユーザーに x 追加です.

数字はシンタックスエラーなるので、こう書く

次の記述はSyntax Errorになります。

rsync --chmod=777  ## これはsyntax Error

こう書きます。

rsync --chmod=F644,D775

2019-01-25 追記

chmod 777 について書いた。

参考資料

http://webos-goodies.jp/archives/51213844.html

リンゴマークを出す方法

半角英数字のモードで option - shift - k 

f:id:takuya_1st:20160206232854p:plain



Apple の林檎マークを入力する

林檎マーク便利です!(Apple端末なら全ての端末で表示可能みたいiOSとか!)

フォントだから綺麗!

f:id:takuya_1st:20160206232857j:plain Opt+Shiftを押した時に使えるキー一覧

参考資料

http://web.archive.org/web/20110706081042/http://www33.ocn.ne.jp/~xinoue/mactipsx/appleMark.html

ntp daemon なしで時刻同期するには

crontab で ntp 同期

30 8 * * * /usr/sbin/ntpdate ntp.nict.jp

ntp daemon をインストールするのが面倒だった。 (linux-boxなのでビルド面倒?)

PPCだったので、パッケージあるかわからなかったしとりあえずNTPコマンドがあれば時刻くらいは合わせられると分かった。