月份: 2019 年 11 月

python then crontab it

crontab 是 Linux 內建的機制,根據設置時間參數來執行例行性的工作排程。

前五項參數 + 執行的command
依序是分鐘(0-59), 小時(0-23), 日期(1-31), 月份(1-12), 星期(0-6), 指令
參數為0-590-231-311-120-6執行的command

參數意義

【*】:星號,代表任何時刻都接受的意思
【,】:逗號,代表分隔時段。例如:30 8,15 * * * ,代表早上 8 點半和下午3點半執行
【-】:減號,代表一段時間範圍。例如:0 9-12 * * * command,代表從 9 點到 12 點的每個整點執行
【/n】:斜線,n 代表數字,表示每個 n 單位間隔。例如:* */1 * * * ,代表每隔 1小時執行一次 command。

crontab 操作

crontab 是會根據不同的使用者去判定可以操作的範圍。

$ crontab -l: 列出該使用者擁有的 crontab 指令
$ crontab -e: 編輯該使用者的 crontab 指令
$ crontab -r: 將使用者的 crontab 全部清除!

編輯完存檔離開([ESC][:][wq])

範例參考

$* */1 * * * /home/xxx/python/fetchA.py & /home/xxx/python/fetchB.py

舉例: fetchA.py fetchB.py是兩隻爬蟲程式,crontab 每一個小時會自動執行

Install python and Jupyter notebook

在 windows 安裝 python and notebook
其實,在Linux , MacOS , BSD 上也是相同的方法,整個安裝與設定應該可以在半小時內完成。OK! Let’s go!

1.首先 google miniconda , 我建議安裝 miniconda , 而不要裝 anaconda 原因是 anaconda 會把全部的 package(套件) 或 module(模組) 全部都裝起來,建議只裝 miniconda , 執行時若需要 python 會告訴缺少的模組或套件,到時候你再去安裝就好,因為這樣你就會很清楚這些套件彼此的依存關係。

通常google出現的第一個應該就是了,接下來就看你的作業系統是哪種,下載最新的python吧!接下來的說明我們會以windows為例,一步一步地布建,直到裝好 jupyter notebook。

2.裝好後,執行Anaconda Prompt (這是一個指令化的介面,不必太擔心,一步一步來即可),輸入 conda create -n env1 (製造一個乾淨的python環境,這很重要,要甚麼再裝甚麼,不然python會太肥,當然你也可以取別的名字,而不是env1)

3.輸入 conda activate env1,如此就進入了。接著我們介紹一些 conda 指令,conda list : 表列這個python環境安裝了那些套件,conda info :說明這個python環境的相關資料,

active environment : env1
active env location : C:\Users\USER\.conda\envs\env1
shell level : 2
user config file : C:\Users\USER\.condarc
conda version : 4.7.12
conda-build version : not installed
virtual packages : __cuda=10.0
base environment : C:\ProgramData\Miniconda3
… (略)

4.在這環境內安裝 conda (conda install conda), 升級conda (conda update conda)。這時你可以 試試 conda list 看看安裝了哪些基本套件。

5.安裝 jupyter notebook ,當然是 conda install jupyter,你的 windows [開始 工作列]上就會出現,Jupyter Notebook的快捷連結了。

6.開啟 jupyter notebook,以後我們課程所有的環境都在這裡了,我們先嘗試安裝 numpy 和 pandas這兩大套件,先開啟New, notebook Python3,在 In[]: 後面輸入 conda install numpy 按 ctrl-Enter 執行,可能會花一點時間請稍微等一下,python的執行效率不是很好。會了之後用同樣方法再安裝pandas套件。

7.安裝 tensorflow 2.0 ,指令 pip install tensorflow(如果你有GPU安裝tensorflow-gpu即可),不用conda install tensorflow 的原因是 anaconda 尚未將 tensorflow 收入,若是用conda安裝,會裝到1.x版本的tensorflow,如果你有gpu(nvidia),接著裝 cuda 驅動程式(可搜尋 nvidia cuda), cuda toolkit (可搜尋 nvidia cuda toolkit 10,建議裝10.0版的,記得要加進path中),與 cudnn (conda install cudnn,這裡要注意與tensorflow-gpu的版本必須相容,不然會出現錯誤) 。

Install server on LXC-ProxmoxVE

在 proxmox VE 安裝一個虛擬機(以centOS為例) update:2019/10/17

  1. 先升級 yum , 之後我們將用 yum 來安裝所有的套件
    yum -y update
  2. 安裝 nano 編輯器
    yum -y install nano
  3. 安裝net-tools (ifconfig,netstat,traceroute)
    yum -y install net-tools
    yum -y install traceroute
  4. 如果是在proxmos ve 內要裝pppoe, /etc/pve/lxc 內的 *.conf 加入 (還有 lxc 必須設定為 privileged)
    lxc.cgroup.devices.allow: c 108:0 rwm
    lxc.mount.entry = /dev/ppp dev/ppp none bind,optional,create=file
  5. 安裝 rp-pppoe (如果要架設server,建議安裝這個透過這個取得真實ip)
    yum -y install rp-pppoe
    pppoe-setup 設定
    adsl-start
  6. 安裝lamp
    yum -y install httpd mod_ssl openssl mariadb-server
    yum -y install epel-release
    yum -y install yum-utils
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    yum-config-manager –enable remi-php73
    yum install -y php php-mysqlnd php-pdo php-xml php-pear php-devel php-mbstring re2c gcc-c++ gcc
    systemctl enable httpd
    systemctl start httpd
    systemctl enable mariadb
    systemctl start mariadb
  7. 接著馬上更改 mariadb的密碼
    mysql
    USE mysql;
    UPDATE user SET Password=password(‘your-new-password’) WHERE User=’root’;
  8. 安裝ssh sshd
    yum -y install openssh openssh-server
    systemctl start sshd
    systemctl enable sshd
  9. 安裝常用工具 wget lynx
    yum -y install wget
    yum -y install lynx
  10. 安裝ftpd
    yum -y install pure-ftpd
    systemctl enable pure-ftpd
    systemctl start pure-ftpd