Ubuntu でスクリプトを書いていたら出た。 sh: 0: getcwd() failed: No such file or directory書いていた状況と、 getcwd() でコケているところを見る感じ、既に削除等で存在しないカレントディレクトリで、何かコマンド実行すると出るみたいだ。 (そんなシチュエーションであることに、このメッセージが出ていて気付いた・・・w)
本当に笑い話なんだけど、恥を忍んで残しておく。 書いたシェルスクリプトを実行してみると、どうも途中で、以下が出力されて終了してしまう。 Terminated "bash -x" で実行して見てみると、どうも pkill hogefugaの処理で終了しているようだ。はて、どうしたのかな・・・と10秒くらい考えて気付いたのだけど、、、 このシェルスクリプトのファイル名が "hogefuga_backup.sh" というファイル名だった! という笑い話でござった。 ーーーーー 完 ーーーーー
Linux システムコールについて調べたことをまとめる。システムコールの仕組みを理解すると、 OS とアプリケーションがどのように連携して動いているのかを理解できるようになります。 システムコールは CPU に依存する処理が多いため、 x86_64 に絞ります。 検証環境]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ]# cat /proc/cpuinfo | head processor : 0 vendor_id : GenuineInte
ファイルシステムを作成すると、ファイルシステム自体の管理領域などのため、ファイルシステムを作成するデバイス・ボリュームの容量を100%使えるようにはならない。 では何パーセントが減ってしまうのか。10%あれば大丈夫なのか、3%程度でもよいのか、厳密には決まらないのか、そんな疑問・不安を取り除くために検証および論理的な裏取りを行った。 検証環境は CentOS 6.4 (x86_64) で、ファイルシステムは ext4 である。なお、ブロックサイズは 4KB を前提にする。CentOS 7 (RHEL 7) でも考え方は同じだが、計算の元になる基礎値に差があるため注意が必要(「その他」にて触れる)。 検証結果 128M, 256M, 512M, 1024M, 1.5G, 2G, ・・・ と20GまでのLVを作成し、実際にファイルシステムを作成。マウントした際の df -k の Availab
備忘録。 自宅にある物理サーバ (Linux) をメンテナンスする際、モニターとキーボードを接続させてオペレーションすることがたまにあるのですが、CUIメインな環境なので、仮想コンソールを使い分けたりしています。 んで、大抵は仮想コンソールを切り替える際に、キーボードで Ctrl + Alt + (F1 〜 F6) を入力して切り替えていくと思うのですが、今日、特定の仮想コンソールがキーボードを押しても何故か反応せず (切り替えられず)、アレっとなったので、仮想コンソールを移動させるコマンドの存在を思い出して、コマンド名をググって久しぶりに使ったという話。 ・・・というだけの話ですが、そのコマンドは chvt コマンド。rootユーザで実行、もしくはsudoで実行する必要があります。 tty2 に接続する場合は、 # chvt 2みたいな感じで実行します。 CHange foregroun
メモ書き。 自宅で CentOS 8 が動いているサーバがあるのですが、先日 dnf コマンドが使えなくなってしまい、あ、そういえば CentOS 8 って、昨年末で EOL を迎えてしまっていたのかーー、と気づいた次第。 ちなみに↑の時にインストールしたやつ。 さて、、、 # dnf update CentOS Linux 8 - AppStream 24 B/s | 38 B 00:01 エラー: repo 'appstream' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist: No URLs in mirrorlistdnf コマンドを実行するとこんな感じ。英語だと、以下のような感じか。 Error: Failed to download metadata for repo 'appstream': Cannot
SELinuxシリーズ 本記事は、SELinuxシリーズの1記事目です。 Linuxプロセスアクセス制御の概要 ←今ココ SELinuxの概要 SELinux Type Enforcement SELinuxの実践 (参考) SELinuxのRBAC、UBAC、MLS、MCS (参考) SELinux Module Policyのソースコード読解、ビルド 参考URL 1〜3記事目は、4記事目を理解するための前提知識をカバーしています。 4記事目が最も重要で、SELinuxの具体的な操作方法やコマンド、トラブルシューティング手順を紹介しています。 5記事目以降は参考情報です。 SELinuxの関連記事は、SELinuxタグから探せます。 一連の記事はFedora環境を前提として書いています。 FedoraやRHELに類するディストリビューションであればほぼ同等の挙動になると思いますが、他のデ
M1チップ(Appleシリコン)を搭載したMacに、Linuxが近く正式に対応する見通しです。 M1 MacでのLinux直接起動を目指すプロジェクト LinuxのM1 Mac対応については以前から強い要望があり、昨年12月にはLinuxのM1 Mac上での直接起動を目指すキャンペーンが立ち上げられています。 このキャンペーンを主導するヘクター・マーティン氏が立ち上げたプロジェクト「Asahi Linux(Asahiはリンゴの品種名であるMcIntoshの和名「旭」に由来)の公式ツイッターアカウントは現地時間4月8日、Linux 5.13カーネルのプルリクエストがLinux SoCツリーにマージされた、とツイートしました。 Initial M1 support has been merged into the Linux SoC tree and will be coming to Lin
CPUの性能を調べる方法を紹介、というかメモです。 次の記事が長くなりすぎないように分割したやつ。 CPU Benchmark Charts 最も手軽にCPU性能を調べられるのが、このサイトです。 PassMark Software – CPU Benchmark Charts 私の場合は、サイドバーの『Single Thread』を眺めたり、ヘッダの検索から型番のページに行って、Single Thread の値を確認したりします。 マルチコアでの総合力も大事なんですが、個人的には Single での性能がレスポンスタイムなどに直結するので、重要視しています。 CPU情報 /proc/cpuinfo Linux なら、これで大体の情報を確認できます。 $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family
OSSに関するセキュリティ・ツールの使い方・脆弱性等を紹介しています。 SELinux/Capability/AntiVirus/SCAP/SIEM/Threat Intelligence等。 OSS脆弱性ブログ01/27/2021にsudoの脆弱性情報(Important: CVE-2021-3156 : Baron Samedit)が公開されています。どのローカルユーザでもパスワード認証を経ずに特権昇格が出来るため、一度ローカルユーザのターミナルを開くことが出来れば権限昇格できてしまうという強烈なものです。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。 【01/27/2021 10:30更新】Amazon Linuxのリンク(ALSA-2021-1478)も加えました。また、詳細情報を追記しました。 【01/27/2021 14:30更新】O
※ このエントリは、はてなグループ終了に伴う、サブブログからの引越エントリ(2016/10)です。 ※ 情報が古い可能性もありますので、ご留意ください。 cURL で取得できるレスポンスタイムの内訳について、引用的なメモ。 Step 4: Print timing breakdown But we still don’t see the timing breakdown of the HTTP request as promised. If we go through all the options supported by curl (http://curl.haxx.se/docs/manpage.html) we will see that it has the capability of returning timing information on the hostname lo
メモ書き。 タイトルのエラーが出たことで、CentOS 6 のサポートが先月 (2020/11/30) に終了したことを思い出した・・・。 # yum update 読み込んだプラグイン:fastestmirror, refresh-packagekit, security 更新処理の設定をしています Determining fastest mirrors YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid release/repo/arch combination/ removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt エラー: Cannot find a vali
前職に帰属する文書ではあるが、自分が書いたものを振り返りながら以下に時系列順にまとめておこうと思う。 アスタミューゼ社では、開発やデザインに関する社内勉強会を週1で持ち回りで昔から行っており、この内容を外に出すだけでも多少プレゼンスが上がるのになぁ、、、じゃあ、やってみようか、ということで始めたのが所謂エンジニアブログでした。 主導したこともあり、記念すべき一発目のエントリを書かせてもらったのですが、メンバー間で色々と検討しながら作ったエンジニアブログなので、そのプロセスやノウハウをせっかくなので出してみようと、1回目からあまりエンジニアリングに関係のない内容になってしまったのも良い思い出w オンプレ (本番) と AWS (ステージング) で動いていたデータやサービス環境を、GCP に移していくことになるのですが、夜間にほとんど働いていないステージング環境のサーバは止めてしまえばいいんじ
※ このエントリは、はてなグループ終了に伴う、サブブログからの引越エントリ(2016/11)です。 ※ 情報が古い可能性もありますので、ご留意ください。 parted コマンドで、 (parted) mkpart primary xfs 0 -0こんな感じで、ごっそり1パーティションに、MAXサイズを割り当てようとすると、 Warning: The resulting partition is not properly aligned for best performance.警告が出る。このままだとセクタをまたぐからアライメントした方がいいよ、という話。 このまま mkfs する際も、ちゃんと下記のような警告を出してくれる。 warning: device is not properly aligned /dev/sdb1この場合に作成されたパーティションは、こんな感じ。 Number
※ このエントリは、はてなグループ終了に伴う、サブブログからの引越エントリ(2016/09)です。 ※ 情報が古い可能性もありますので、ご留意ください。 ある Ubuntu マシン (サーバー) のインストールパッケージ一覧をベースに、別マシンに同じパッケージ群をインストールする古典的なやり方。 コピー元マシン # dpkg --get-selections > installed.list コピー先マシン # apt-get install dselect # dselect update # dpkg --clear-selections # dpkg --set-selections < installed.list # apt-get dselect-upgrade # apt-get autoremove
※ このエントリは、はてなグループ終了に伴う、サブブログからの引越エントリ(2016/07)です。 ※ 情報が古い可能性もありますので、ご留意ください。 $ autossh -f -M 0 -N -g -o "ServerAliveInterval 60" -i ~/.ssh/id_rsa -L (ローカルポート):(リモートホスト):(リモートポート) (SSHユーザ名)@(SSH接続先ホスト)上記の例は、 "-g" オプションで、他ホストからも接続を受け付ける設定になっているので、そこは要注意。 参考 AUTOSSH(1) BSD General Commands Manual AUTOSSH(1) NAME autossh — monitor and restart ssh sessions SYNOPSIS autossh [-V] [-M port[:echo_port]] [-
※ このエントリは、はてなグループ終了に伴う、サブブログからの引越エントリ(2017/03)です。 ※ 情報が古い可能性もありますので、ご留意ください。 systemtap でゴニョゴニョやろうと実行していたら、 semantic error: missing x86_64 kernel/module debuginfo [man warning::debuginfo] under '/lib/modules/4.4.0-66-generic/build'こんな感じで debuginfo が見つからないとのことで、以下な感じでインストールしました。 # apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C8CAB6595FDFF622 # codename=$(lsb_release -c | awk '{print $2}'
※ このエントリは、はてなグループ終了に伴う、サブブログからの引越エントリ(2015/11)です。 ※ 情報が古い可能性もありますので、ご留意ください。 $ wc -c (ファイルのパス) | awk '{print $1}'
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く