nohup <command> &
これで、バックグラウンドで動作しつつ、ログアウトしてもプロセスが死なずに済みます。
でも、セミコロンで区切って複数のコマンドを繋ぐと、nohupが効くのは最初だけなので注意。
それと、コマンドを実行したカレントディレクトリに、コマンドのSTDOUTをトラップした
nohup.out っちゅーファイルを作るので、これも要注意。
気がついたら nohup.out がバカでかくなってディスクfull…なんてことにならないように。
とにかくcronにタイマー起動プログラムをセットする方法。
1:既に crontab に登録されているかどうか、crontab -l で確認。
2:どっかに crontab というディレクトリがあるので探す。
3:crontab -eで普通はcrontabの編集ができる(はず)。crontabと入れるだけで、プロンプトもなく入力モードになるやつもある。
4:crontab -eがだめなら、crontabディレクトリの下に、実行させるユーザ名(例えばroot)でファイルを作成。権限は444でオッケー。
5:viでファイルを開き、「分 時 日 月 曜日 シェルコマンド」の順で、スペースで区切って1行づつ設定を書く。
例えば、
-------------------
#crontab written by ITTAN MOMEN
←コメント
29 19 24 12 * /usr/local/bin/hello.sh
←12月24日19時29分にhello.shを実行(毎年)。
* * 2,7 * * /usr/local/bin/funaichi.sh
←毎月2日と7日にfunaichi.shを実行。
0 0 * * 0,6 /usr/local/bin/weekly.sh
←毎週日曜日と土曜日の午前0時0分にweekly.shを実行。
-------------------
など。【分 時 日 月 曜 コマンド】の順
(分は0〜59、時は0〜23、日は1〜31、月は1〜12、曜日は日曜日を0として土曜日の6まで。カンマで区切ると複数の数値を入力できる。)
6:ファイルを閉じる。
7:あとは放っとく。
crontab -r
cron設定削除
crontab -l
cronの設定一覧表示
crontab -e または crontab cronの設定編集
crontab -e ユーザ名
rootだけが使える、他人のcron設定の編集
| sendmail -bp -oQ/usr/.../... | -oQで指定したディレクトリに、キューがどんだけ溜まってるか見る。-oQオプションを省略すると、mailqと同じ。 |
| sendmail -C/usr/.../...cf | 特定のcfファイルを指定(-Cの後はスペースなし)。 |
| sendmail -q2d | 溜めたキューを処理する間隔。s=seconds(秒)、m=minutes(分)、h=hours(時間)、d=days(日) |
| sendmail -oQ/usr/.../... -q | -oQ以下で指定したディレクトリにあるキューを送信する(ディレクトリ指定の最後の/はナシ)。 |
| sendmail -qS文字列 | 送信者(sender)の項目に指定した文字列があるものだけを処理する。xxx.xx.jp等の表記も可。 |
| sendmail -qR文字列 | 受信者(reciever)の項目に指定した文字列があるものだけを処理する。xxx.xx.jp等の表記も可。 |
kill `ps -e | grep "文字列" | awk '{print $1}'`
って、killall使えよ…>わし。
いろいろあるらしい。
ちなみに、tarのコマンドはこんな感じ。
仕事で時々、クロスケーブルやストレートケーブルを作るコトがある。
素人なので、そのたびに結線を資料やWebで探して確認するが、面倒になってきたのでここにメモした。
ストレートケーブルの結線図
クロスケーブルの結線図
番号どうしが繋がれば、色なんか適当でもいいじゃないかという意見もあり、実際1mくらいのショートケーブルなら
それでもなんとかなっている(片側をあわてて圧着してから、1〜8が逆順になってたのに気づいたりするし…)。
しかし、数十メートルのロングケーブルにもなるとヤバイらしい(そんな長いのを作る機会も材料もないが)。
上記の方法は、EIA規格に準拠した結線方法なので、これに沿って結線しておくのが良い。
注意点は以下のとおり。
ftpを自動化したいときは、.netrcというファイルを自分のホームディレクトリに仕込んでおきませう。
.netrcの例は、
--------------------------------------------
machine ftp.hoge.net
(IPアドレスも可。)
login hogehoge
password hogepass
(パスワード丸見えなので要注意!)
macdef init
(マクロ定義。空行までを実行。「init」の場合は、ログイン後に自動実行する。)
binary
(あとは通常のftpコマンドと同じ)
lcd /tmp
get test.dat download.dat
put upload.dat
bye
(これでftpから抜ける。quitも可)
(一連のコマンドの区切りのために、空行を入れておく)
machine 172.172.172.172
(2つめのサーバ名)
login honehone
password honepass
(こっちもパスワード丸見えなので要注意!)
macdef upload
(マクロ定義。ログイン後、この名前で以下空行までの一連のマクロを実行。)
prompt
(mput/mgetなどの時、対話形式にするかどうかをトグル。ftpログイン時はprompt
on)
ascii
lcd /home/honehone
mput test??.html
bye
(これでftpから抜ける。quitも可)
(最後も一応、空行を入れておく)
--------------------------------------------
machine ftp.hoge.net login hoge password hogepass
と一行で書いてもOK。
これを仕込んでおくと、「ftp ftp.hoge.net」とやると、ログインからmacdef以下(binary〜bye)が自動実行可能。
(仕込んでおきながら自動実行したくないときは、-nオプションをつけて「ftp
-n ftp.hoge.net」とする)
また、「ftp 172.172.172.172」とやると、ログインまでを行って止まる。
ログイン後にmacdefでつけたマクロ名「upload」を入れると、それ以下の行を自動実行するので、
複雑なコマンドや処理をまとめておくのに便利。
$ftp 172.172.172.172
Connected to 202.255.60.32.
220 xxx FTP server (Version xxxx) ready.
331 Password required for honehone.
230 User honehone logged in.
> upload (マクロ名を入力)
以下空行までのマクロを実行
★ただし、.netrcファイルのパーミッションを、groupとothersから読めない状態にする必要あり。
(でないと実行時に怒られる)。700か600がオススメ。
特に自助努力を要求する「Solaris」系のサーバをネットワークにつなぐために、admintoolなんかを使わずにファイル変更だけでやる場合。
前提:
| マシン | ホスト名 | IPアドレス | マスク |
| 設定するマシン | ringo.hogehoge.net | 10.10.10.10 | 255.255.255.0 |
| ネームサーバ | dns.hogehoge.net | 11.11.11.11 | 255.255.255.0 |
| デフォルトゲートウエイ | 12.12.12.12 | 255.255.255.0 |
★追記★---------------
Solaris8 の場合、これだけでは上手く行きませぬ。
これ変えてからリブートしないと反映されなかったっス。(T_T)/etc/inet/ipnodes に/etc/inet/hostsと同じ設定を追加
Solarisさんは、最初はなーんも入ってなかったりするので、手間ヒマかけて育ててあげねばなりませぬ。
というわけで、面倒な時はここからいろいろもらってきます。パッケージとか。(お世話になりやす)。