主機
Ubuntu 24.04 LTS 可以支援至2029年
安裝套件:SSH、docker
安裝OJ
$ git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git
$ cd OnlineJudgeDeploy
閱讀全文〈[Linux] 架設Online Judge〉 PYTHON、UBUNTU、MAC、CMS
Ubuntu 24.04 LTS 可以支援至2029年
安裝套件:SSH、docker
$ git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git
$ cd OnlineJudgeDeploy
閱讀全文〈[Linux] 架設Online Judge〉 以下都是使用一般user權限,不用root。畢竟一開始也有將某個user開通docker使用權限了。(參考上篇) $ cd /home $ mkdir -p unifi/data $ mkdir -p unifi/log # 測試指令: $ docker run --rm --init -p 8080:8080 -p 8443:8443 -p 3478:3478/udp -e TZ='Asia/Taipei' -v /home/unifi:/unifi --name unifi jacobalberty/unifi:latest --rm:其用途就是在我們執行完指令後,可以不用再下 docker rm 的指令去刪除容器,直接在執行完指令後, Docker可以自動幫我們刪除容器。 latest:本來要裝穩定版,但原本就有運作的UniFi Controller,他已經升級到最新版本,所以這邊也跟著抓最新版本 # 實際上線指令: $ docker run -d \ --restart=unless-stopped \ --net=host \ --name=unifi \ -e TZ='Asia/Taipei' \ -e RUNAS_UID0=false \ -v /home/unifi:/unifi \ jacobalberty/unifi:latest --net=host:是為了允許L2發現。如果不需要L2發現,只需映射Port即可。 -e RUNAS_UID0 改成 false,讓 Controller 不要用 root 身份運作。 # 未來我該如何升級呢? $ docker pull jacobalberty/unifi:stable $ docker stop unifi $ docker rename unifi unifi.save 然後再做一次run指令,跟上面相同 $ docker run -d \ --restart=unless-stopped \ --net=host \ --name=unifi \ -e TZ='Asia/Taipei' \ -e RUNAS_UID0=false \ -v /home/unifi:/unifi \ jacobalberty/unifi:latest
Ubuntu 20.04
$ sudo apt-get install docker.io
$ service docker status
如果沒意外的話會在前面幾行看到:Active:active(running)
$ sudo usermod -aG docker <username>
這個動作主要是因為權限的關係,如果沒有加這個,會導致普通使用者沒權限使用 Docker。
$ docker version
會出現 Client、Server 的訊息,但如果最下面出現了:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
這就是可能因為沒做第三個步驟,通常是權限的問題。
最近在主機上架設了Docker,因為我需要每天下班後讓電腦排程自動去網路上抓特定最新資料,想了想,還是在linux上來處理類似服務比較方便。由於需要安裝 Python和相關套件,為了避免影響現有主機上的服務,乾脆架設Docker服務,然後容量就不太夠了。
$ pvdisplay
$ vgdisplay
$ lvdisplay
擴充順序:PV 100GB->160GB => VG => LV
$ parted (parted) print #列出目前狀態 (parted) resizepart #剛剛狀態顯示number 2可以擴充,選 2 (end) 160GB #剛剛print 有顯示 磁碟 /dev/sda: 最大可以多少 (parted) resizepart #選 5 擴充LVM (end) 160GB (parted) print (parted) quit $ pvdisplay #看一下pv最新空間大小,順便查一下是sda?? $ pvresize /dev/sda5 #對sda5進行resize操作 $ pvdisplay #pv應該順利擴增到160GB了 $ vgdisplay #查看一下:PV上的VG容量也變大了 $ lvdisplay #檢查 LV狀態 $ lvextend -L 144.56G /dev/Coolsea-vg/root #擴增空間,無法輸入滿160G是正常的 #這數字就是lvdisplay原本size + vgdisplay裡面看到的free size $ lvdisplay #再次檢查,應該成功了 $ resize2fs /dev/Coolsea-vg/root #跑完resize2fs就可以收工。
如果你想刪除 7 天前的檔案指令是:
#mysql -u root -p
> PURGE BINARY LOGS BEFORE DATE(NOW() – INTERVAL 7 DAY) + INTERVAL 0 SECOND;
如果要自動刪除超過七天的 log bin
$nano /etc/my.cnf
[mysqld]
expire-logs-days=7
設完 my.cnf 後記得重啟 service 讓 mysql daemond 吃 ini 的設值
如果要完全關掉的話,在最前面加入 # 字號
# log-bin=mysql-bin