Linux
mkdirコマンドは、既に対象のディレクトリがあるとエラーになってしまいます [farmedgeek@Mint:~]$ ls -ld /home/farmedgeek/aaa drwxrwxr-x 2 farmedgeek farmedgeek 4096 Jan 7 10:54 /home/farmedgeek/aaa [farmedgeek@Mint:~]$ mkdir /home/farmedgeek/a…
DIR1="/aaa/bbb/ccc/" DIR2="${DIR1}ddd/eee/" DIR3="${DIR2}fff/" DIR4="${DIR3}ggg/hhh/" CONF="${DIR2}xxx.conf" FILE="${DIR4}filename.txt" こういう 入れ子になったディレクトリパスの変数化ってメリットあるのかな?と。。 「ファイル覗きたいんやがD…
いっつもわからなくなるんですが [farmedgeek@Mint:~]$ date > moto [farmedgeek@Mint:~]$ cat moto Mon Jul 6 12:08:10 JST 2015 [farmedgeek@Mint:~]$ の場合 ln -s ${リンク元} ${リンク先} なので [farmedgeek@Mint:~]$ ln -s moto saki [farmedgeek@Min…
ターミナルから叩いた時は上手くいったのに IT(結合テスト)で他プロセスからキックされたら上手く動かない。。 みたいなときって、たまーにあります。 適正なユーザでない よくあるのは「ユーザが違う」っていうケースです。 結合テストだとバッチ用ユーザ…
「許可がありません.」とか「Permission denied.」って言われる場合 たんにファイルに実行権限がない場合は chmod でヨロシクドウゾなんですが 例えば ドットコマンド を実行した場合にコレが出た場合 [farmedgeek@Mint:~]$ . ./tmp.sh /bin/.: Permission d…
デフォルトだとこうなってますが farmedgeek@localhost ~ $ ls -l ちょっと気に食わないので変えちゃいます .bashrc に下記を追記してください PS1='[${debian_chroot:+($debian_chroot)}\u@\Mint:\W]\$ ' こうなります farmedgeek@localhost ~ $ . .bashrc …
結論から言うと adduser → 「とりあえずお手軽にテストユーザ作りたい場合」 対話形式で必要な情報を聞いてくれるから useradd → 「ある程度運用人数も多くて、レギュレーションが決まってるとか、スクリプトで大量に作りたい、っていう場合」 デフォルトだ…
trコマンドの落とし穴 これもう個人的な記事なんですが、、騙された感が強かったので。。 単なる文字の置換をしたいときに、簡易版sedとして重宝するtrコマンドですが 何気に文字"列"には対応していません。 $ tr abc 123 の意味するところは "abc"っていう…
bashで丸括弧を使うことでサブプロセスを走らせることができる bashで丸括弧が出てきて、「?????」ってなったので、調べてみました。 ./subproc.sh #!/bin/sh echo "[mainプロセスで変数に格納、mainプロセスで表示]" PROC="main" echo "PROC=${PROC}\n…
引数がいくつ来るか分からない場合 shiftコマンドを実行することで、シェルの引数を順に第一引数として呼び出すことができます ./shift.sh #!/bin/sh for i in `seq 1 ${#}` #引数の数だけループさせる do echo ${1} #第一引数を表示 shift #shift done 実行…
レスポンスがないWebAPIとか、ウェブビーコンのURLを叩くときに HTTPレスポンスで成否を判断する方法ですね curl -s ${URL} -o /dev/null -w "%{http_code}\n" 例 [farmedgeek@Mint ~]$ curl -s https://www.google.co.jp/ -o /dev/null -w "%{http_code}\n"…
cronが実行されるところ cronってどこで実行されるんだろう?っていうのを知らなかったので 調べてみました。 やり方 あえて相対パスでcrontabを作成 * * * * * date >> cron.txt これでやってみたところ [farmedgeek@Mint ~]$ tail -f /home/farmedgeek/cro…
bashでoracleに接続し、SELECT結果を利用したい bash内部で、oracleに接続して取得した結果を シェル変数に入れて使いまわす方法です。 ./select.sh #!/bin/sh MY_SYSDATE=`sqlplus -s scott/tiger << EOF set feedback off; set echo off; set flush off; s…
rsync ディレクトリ間の同期をとるコマンド rsync ${dirA} ${dirB} とやることで、${dirA} のファイルをまるごと ${dirB} へコピーすることができます。 scpと同様に、ホストを跨いで行うことも可能。 その場合は rsync ${dirA} ${hostname}:${dirB} で ${ho…
sshでエラーが 頻繁にログインするサーバと たまにしかログインしないサーバってあると思うんですけど 今日、後者のサーバに半年ぶりくらいにログインしようとしたら こんなエラーが出てきました。 [farmedgeek@Mint ~]$ ssh ltns_host @@@@@@@@@@@@@@@@@@@@…
前回に引き続き、ポートの話です。 前回は、ポートがどうなってるかを確認するところまででしたので 今回は閉じているポートを開けるところまでやってみたいと思います。 ポートを開けるには、iptablesをいじる必要があるんですが、素人には難しい(らしい)…
開いているポートを調べる方法です nmapコマンドを使います なければ入れましょう [farmedgeek@Mint ~]$ sudo apt-get install nmap 空いているポートの一覧を出してくれます [farmedgeek@Mint ~]$ nmap 127.0.0.1 Starting Nmap 6.00 ( http://nmap.org ) a…
こないだsuコマンドを使ってるとき、同僚に「ハイフン付けた方がいいよ」といわれたので なんでかなーと思って、ハイフンを付けた時と、付けない時の違いを調べてみました。 [farmedgeek@localhost ~]$ su newcomer と [farmedgeek@localhost ~]$ su - newco…
今日はドットコマンドについてです。 ドットコマンドとは シェルスクリプトの実行方法の一つです。 まず下記のような簡単なシェルスクリプトを書きます。 #! /bin/sh WK=$1 echo ${WK} 引数に渡した値を変数に代入して、標準出力に返すというスクリプトです…
最近ユーザの追加をする機会があったので アカウントの追加とsudoの設定をメモしておきます。 what is sudo? sudoはroot権限で様々なコマンドを実行できるコマンドです。Linuxサーバを運用していればどうしてもroot権限が必要な時が出てきます。 新規にユー…
今日はcron(クーロン)について。 what is "cron"? どのスクリプトをいついつに実行させる、っていうのを登録しておくと決まった時間に自動で実行してくれる機能です。 いわゆる「バッチ」のことですね。 ユーザ毎に設定ができて、実行する際はそのユーザとし…