Linux : してログ

OS をインストールするときは ISO ファイルを取っておいたほうがいいかも知れません。 何らかの理由でアップデートしていないシステムを移設したいとき、当時のバージョンの ISO ファイルが無くて困ったりします。 今のところ、そんな要求をストレートに叶えてくれるサイトが下記になります。 これもいつまでダウンロード可能か分かりませんので、必要なものは今のうちにダウンロードしておいた方が良いかも知れません。

画像は CentOS の誤字だが、こんなん見たら夜中に笑ってしまったやんけ。 逆にどう間違えたら、こうなるんだろうと色々と詮索してしまいます。

カーネルアップデートによって /boot が容量不足に陥る可能性があります。 古いカーネルを削除して、容量不足を解消する手順です。

必要なパッケージの確認

yum-utils が必要になりますので、入っていない場合は入れておきます。

# yum install yum-utils
インストールされているカーネルの確認

下記のコマンドによりパッケージ一覧を表示させ、インストールされているカーネルを確認します。

# rpm -q kernel
kernel-3.10.0-327.el7.x86_64
kernel-3.10.0-327.4.4.el7.x86_64
kernel-3.10.0-327.4.5.el7.x86_64
kernel-3.10.0-327.10.1.el7.x86_64
古いカーネルの削除

何世代前まで残すかを“--count”オプションで指定し、下記コマンドを実行します。

# package-cleanup --oldkernels --count 2

Windows のコマンド窓で Linux コマンドが使いたい、という要求にストレートに答えてくれるコマンド集を見つけました。この用途だと Cygwin がありますがあんまりスマートじゃないですしおすし。Gow は他のとちがってインストーラも用意されていて、さくっと利用可能にできます。

Gow - The lightweight alternative to Cygwin
https://github.com/bmatzelle/gow/

インストールすると、下記のコマンド群が利用可能になります。パスも通してくれます。更に、フォルダのコンテキストメニューに Command Prompt Here というメニューが追加されます。

インストール先の bin ディレクトリの内容
awk.exe
basename.exe
bash.exe
bc.exe
bison.exe
bunzip2.exe
bzip2.dll
bzip2.exe
bzip2recover.exe
cat.exe
chgrp.exe
chmod.exe
chown.exe
chroot.exe
cksum.exe
clear.bat
cp.exe
csplit.exe
curl.exe
cut.exe
dc.exe
dd.exe
df.exe
diff.exe
diff3.exe
dirname.exe
dos2unix.exe
du.exe
egrep.exe
env.exe
expand.exe
expr.exe
factor.exe
fgrep.exe
flex.exe
fmt.exe
fold.exe
gawk.exe
gdbm3.dll
gfind.exe
gow.bat
gow.vbs
grep.exe
gsar.exe
gzip.exe
head.exe
history5.dll
hostid.exe
hostname.exe
id.exe
indent.exe
install.exe
join.exe
jwhois.exe
less.exe
lesskey.exe
libcurl.dll
libeay32.dll
libiconv2.dll
libidn-11.dll
libintl-2.dll
libintl3.dll
libssl32.dll
ln.exe
ls.exe
m4.exe
make.exe
md5sum.exe
mkdir.exe
mkfifo.exe
mknod.exe
msys-1.0.dll
msys-regex-1.dll
msys-termcap-0.dll
mv.exe
ncftp.exe
nl.exe
od.exe
pageant.exe
paste.exe
patch.exe
pathchk.exe
pcre3.dll
plink.exe
pr.exe
printenv.exe
printf.exe
pscp.exe
psftp.exe
putty.exe
puttygen.exe
pwd.exe
readline5.dll
regex2.dll
rm.exe
rmdir.exe
scp.bat
sdiff.exe
sed.exe
seq.exe
sftp.bat
sha1sum.exe
shar.exe
sleep.exe
sort.exe
split.exe
ssh.bat
ssleay32.dll
su.exe
sum.exe
sync.exe
tac.exe
tail.exe
tar.exe
tee.exe
test.exe
touch.exe
tr.exe
uname.exe
unexpand.exe
uniq.exe
unix2dos.exe
unlink.exe
unrar.exe
unrar3.dll
unshar.exe
uudecode.exe
uuencode.exe
vim.exe
wc.exe
wget.exe
whereis.bat
which.exe
whoami.exe
xargs.exe
yes.exe
zip.exe
zip32z64.dll

aliases にパイプを追加

default.example.com: |/path/to/auto/mail/catch.sh

/etc/smrsh/ に実行するコマンドを指定

cd /etc/smrsh
ln -s /path/to/auto/mail/catch.sh ./

/path/to/auto/mail/catch.sh はこうなってる

#/bin/sh
sudo -u user /path/to/auto/mail/catch.php

/etc/sudoers に実行許可するコマンドを入れる

mail ALL = (user) NOPASSWD: /path/to/auto/mail/catch.php

/etc/sudoers の以下の行をコメントアウト

#Defaults    requiretty
  • パイプ時は、mailユーザー権限で実行されるので、他のユーザーで実行するときはsudoを使う
  • sudoはsudoersに追加したコマンドしか実行できない
  • sudoersは440になっているので、一時的に660などにして編集する
  • パスなしのユーザーは、NOPASSWD:を入れないと実行できない