-
Recent Posts
Recent Comments
Categories
Links
Monthly Archives: February 2021
linux ls -l
整理一下 ls -l 相關的內容意義 ls -l 預設顯示第一欄是file type/ permissions / attributes, 第一各字元是file type,d代表 directory,l代表 symbolic link, 在linux中總共有7種file type,分別是 – : regular file d : directory l : symbolic link c : character device file b : block device file s : local socket file p : named … Continue reading
Posted in System Administration
Leave a comment
sudo note
在Linux中,使用者取得root權限執行可以透過sudo 或是 su root (直接切換成root),差別是sudo 是不需要知道root密碼的,並且可以透過定義sudoer限制可使用的命令。修改/etc/sudoers,透過visudo command 在CentOS中, 定義了 wheel group有sudo權限,可將使用者直接加入wheel群組 usermod –aG wheel username 上面除了定義wheel群組,也定義了root使用者,當然root本身就具有最高權限了,會在sudoers定義最主要是因為讓root不會因為用sudo命令被擋下來 例如將 root那行註解後,(以root身分) 輸入 sudo ls會失敗 在Ubuntu中,則是定義了admin 和 sudo group,不過admin group是早期Ubuntu 11及之前在使用的,在Ubuntu 12後不使用 如過要讓使用者sudo 時不需再輸入密碼,可以在檔案的最後面加上 user ALL=(ALL) NOPASSWD:ALL 如果不在最後面加上,則會以最後一筆match的設定apply,以ubuntu預設建立的使用者來說,會自動加進sudo group,所以會導致上面的設定被override When multiple entries match for … Continue reading
Posted in System Administration
Leave a comment
docker-compose project name
docker-compose透過docker-compose.yml檔案描述的方式,操作docker container,特別是multi containers的情境,讓使用和管理上變得很容易,不過需要注意的是 docker compose是透過project name來識別要操作的container,例如啟動、停止等。 一般來說,啟動就只要下docker-compose up就可以,不同的container是isolated,但是在某些情境,對於不同的docker-compose.yml下 docker-compose up有可能會互相干擾,例如以下,起始一個container name為testm2 docker instance 在另一個資料夾下的啟動testm3 上面出現了recreating testm2,查看container list,testm2消失,取代的是testm3 而原來testm2也顯示被踢掉了 這表示testm2被停掉,主要的原因是project name相同 直覺上會覺得container name不同應該就會不會衝突,事實上docker compose是透過project name來管理,參考: https://docs.docker.com/compose/ The default project name is the basename of the project directory. You can set a … Continue reading
Posted in System Administration
Leave a comment
yum repo sync to local
要複製remote yum repo到local有兩種方式 rsync reposync 但不是所有的remote repo都提供rsync存取權限,例如vault.centos.org就無法使用(https://lists.centos.org/pipermail/centos-mirror/2013-April/007069.html 裡面提到將rsync關掉了) https://vault.centos.org/readme.txt The Following External Vault mirrors (not monitored by the CentOS Infra team !) also provide direct downloads for all content, including isos and rsync access: USA: http://archive.kernel.org/centos-vault/ rsync://archive.kernel.org::centos-vault/ Europe: http://mirror.nsc.liu.se/centos-store/ rsync://mirror.nsc.liu.se::centos-store/ … Continue reading
Posted in System Administration
Leave a comment
CentOS 6 docker yum更新
在centos 7環境下跑centos 6 docker image docker run -it centos:6 下 yum update 報錯,顯示無法retrieve repomd.xml 確認一下原因,主要是因為 centos 6在2020 Nov就停止支援了,參考https://forums.centos.org/viewtopic.php?t=72710 Red Hat have pulled the plug on RHEL 6.x as of Nov 30th 2020 and as a result CentOS 6 is now … Continue reading
Posted in System Administration
Leave a comment
rsyslog in docker environment
在docker中,預設沒有啟用systemd所需要的 CAP_SYS_ADMIN privileged capabilities,因此在執行服務時,一般採用直接執行process的方式而不透過systemd控制(systemctl) 不過rsyslogd在CentOS預設是透過journald讀取syslog,journald在systemd的架構下主要處理來自systemd service的stdout/stderr、以及syslog(透過/run/systemd/journal/dev-log,並將/dev/log symlink到前述位置),以及處理systemd forward log到 /run/systemd/journal/syslog (須設定ForwardToSyslog開啟,新版本的rsyslogd已經直接讀取journal,不再使用此方式) 如果要跑journald則需要對docker另外開一些capabilites(可參考systemd的service裡面的CapabilityBoundingSet設定,雖然部分應該是處理kern log),另外要處理listen unix socket的設定(描述在/lib/systemd/system/systemd-journald.socket、/lib/systemd/system/syslog.socket) ,因此最簡單的方式就是直接讓rsyslog listen unix socket /dev/log,並且如果不用systemd,單純使用syslog的話沒有理由需要透過journald來處理。 在/etc/rsyslog.conf 將所有journald相關的設定註解,並且開啟imuxsock 並且刪掉 /etc/rsyslog.d/listen.conf 啟動rsyslogd就可以正常運行將syslog寫入到對應的log檔 以 logger測試 值得一提的是 因為透過imuxsock 模組讀取log,是透過 /dev/log unix socket 讀取log 而這個socket是由 rsyslogd產生的,logger預設也是寫入此socket 可參考 util-linux/logger.c 另外docker執行時,一般習慣上是用foreground執行,rsyslogd預設是會跑在背景,並且會做fork,這對於在整合一些process manager如supervisor或是chapterone的工具無法正確追蹤process是否正確執行,或是要設定專門的rsyslog … Continue reading
Posted in System Administration
Leave a comment