Posts in category “Linux”

How to use Jenkins to deploy a Node.JS backend project?

  1. Checkout code

  2. Set correct config file

  3. Scp to the remote machine

  4. Run deploy.sh on the remote machine by ssh

    • docker-compose build --no-cache
    • docker-compose down
    • docker-compose up -d

sshPublisher setup

  1. Manage Jenkins -> Config System
  • Find Publish over SSH
  • Add New Server, test connection
  1. Write directive in Jenkins file
            sshPublisher(
                continueOnError: false, failOnError: true,
                publishers: [
                 sshPublisherDesc(
                  configName: "yt-files-${BRANCH}",
                  verbose: true,
                  transfers: [
                   sshTransfer(
                    sourceFiles: "**/**",
                    remoteDirectory: "./publish/${BRANCH}",
                    removePrefix: '',
                    remoteDirectorySDF: false,
                    cleanRemote: true,
                    execCommand: "cd ./publish/${BRANCH} && bash deploy.sh ${BRANCH}"
                   )
                  ])
                ]
            )

要在Jenkins中新增对一个仓库的发布,需要以下步骤

  1. 创建流水线, 添加Git仓库,Credentials

  2. 为各分支添加必要的配置文件(不方便加入版本控制的机密信息)

  3. 写 Jenkinsfile

转换 gbk txt文件为 utf-8 编码

这都是为了看《非正常人类异闻录》

iconv -c -f gbk -t utf-8 待转文件名 > target.txt

-c 的意思是在输出文本中忽略非法的字符序列

Reference

然而都弄好了,即没有认真看那本书。不喜欢那种风格,没办法

设置mysql用户密码时小心 # 字符

我喜欢用 .my.cnf 配置 mysql 的登录信息,这样我执行一些命令的时候就不用在命令行上提供密码。但今天我被自己设置的”高强度密码“坑到了

简而言之,如果你的密码里有#字符,请用双引号把整个密码括起来,要知道没有被引号括起来的 #字符,标识后面的都是注释。哈

Debian/Ubuntu/PopOS! package managemant related TIPS

package name for common used Linux util in Debian/Ubuntu

ps

apt install -y procps

ping

apt install -y iputils-ping

telnet

apt install -y telnet

general solution for apt get/apt upgrade similiar issues

first,

sudo dpkg --configure -a

followed by:

sudo apt --fix-broken install

Using dconf-editor to setup extra hot keys for the Gnome 3 desktop

The keyboard shortcuts setting in the Settings app can only support 4 workspaces. However, I want to use 8 workspaces to implement the goal of "everything in its right place". Solution:

sudo apt install dconf-editor
dconf-editor

org/gnome/desktop/wm/keybindings
# Then you can do what you want to do there

Reference

By the way, my final configuration is shown below:

Ctrl + 1-8 Switch to workspace 1-8
Ctrl+Alt+1-8 Move current window to workspace 1-8 and jump to that workspace

  • Workspace 1: Chrome
  • Workspace 2: Gnome-terminal
  • Workspace 3: Rider
  • Workspace 4: WebStorm
  • Workspace 5: Ebook reader (Evince and others)
  • Workspace 6: File Manager, BitTorrent downloader,
  • Workspace 7: VMs
  • Workspace 8: Settings, Telegram, music player, misc.