Toolbox · CI/CD
Jenkins Commands
CLI and API operations for jobs, builds, credentials hygiene and controller maintenance.
On this page
CLI setup
curl -sO https://jenkins.example.com/jnlpJars/jenkins-cli.jar
export JENKINS_URL=https://jenkins.example.com
export JENKINS_USER_ID=me JENKINS_API_TOKEN=*** # personal API token, not your password
alias jcli='java -jar jenkins-cli.jar -webSocket'
Jobs and builds
| Command | Purpose |
|---|---|
jcli list-jobs | All jobs |
jcli build my-job -p BRANCH=main -s -v | Trigger, wait, stream log |
jcli console my-job 42 | Console output of build 42 |
jcli stop-builds my-job | Caution abort running builds |
jcli get-job my-job > job.xml | Export job config |
jcli update-job my-job < job.xml | Caution overwrite the job config from the file |
jcli disable-job my-job | Pause |
Controller
| Command | Purpose |
|---|---|
jcli version | Version |
jcli list-plugins | Installed plugins and versions |
jcli safe-restart | Caution restart the controller once running builds finish |
jcli quiet-down / jcli cancel-quiet-down | Stop scheduling new builds |
jcli reload-configuration | Reload from disk |
REST API
| Request | Purpose |
|---|---|
curl -u "$JENKINS_USER_ID:$JENKINS_API_TOKEN" "$JENKINS_URL/api/json?tree=jobs[name,color]" | Job list |
curl -u … "$JENKINS_URL/job/my-job/lastBuild/api/json?tree=result,duration" | Last result |
curl -u … "$JENKINS_URL/queue/api/json" | Build queue |
curl -u … "$JENKINS_URL/computer/api/json?tree=computer[displayName,offline]" | Agents |
Security hygiene
| Where | Check |
|---|---|
| Manage Jenkins → Security | CSRF on, agent→controller access control on, CLI over remoting off |
| Manage Jenkins → Credentials | Scope credentials to folders; no global admin tokens |
| Manage Jenkins → Nodes | Controller executors = 0 |
| Manage Jenkins → In-process Script Approval | Review pending approvals; do not blanket-approve |
jcli list-plugins | wc -l | Fewer plugins, fewer advisories |