Browse Source

pct-list + faster pct-lookup

main
pvincent 2 weeks ago
parent
commit
d249792166
  1. 39
      bin/pct-list
  2. 11
      bin/pct-lookup
  3. 3
      bin/pct-rename

39
bin/pct-list

@ -0,0 +1,39 @@
#!/usr/bin/env bash
# CONSTANTS
CONTAINER_NAME=$1
# FUNCTIONS
function usage {
echo "$(basename "$0") [CONTAINER_NAME]"
}
function lookup {
cmd="pvesh get /cluster/resources --type vm --output=json | jq --raw-output '.[] | \"\(.name) \(.vmid)\"'"
if [[ $CONTAINER_NAME == "--all" ]]; then
eval "$cmd"
else
cmd="$cmd | egrep '^$CONTAINER_NAME '"
found=$(eval "$cmd") || (echo >&2 "ERROR: container <$CONTAINER_NAME> not found!" && exit 10)
echo "$found" | cut -d' ' -f2
fi
}
function list {
containers=$(lxc-ls "$CONTAINER_NAME")
for id in $containers; do
info=$(lxc-info -si $id)
state=$(echo "$info" | grep '^State:') && state="${state:15}" # remove 15 leading chars
hostname=$(grep -m1 hostname: "/etc/pve/lxc/$id.conf" | cut -d' ' -f2)
ip=$(echo "$info" | grep '^IP:') && ip="${ip:15}"
printf '%-5s %-30s %s %s\n' "$id" "$hostname" "$state" "$ip"
done
}
# MAIN
set -Eue
# [[ "$#" -lt 1 ]] && usage && exit 1
list

11
bin/pct-lookup

@ -11,20 +11,17 @@ function usage {
} }
function lookup { function lookup {
cmd="pvesh get /cluster/resources --type vm --output=json | jq --raw-output '.[] | \"\(.name) \(.vmid)\"'"
if [[ $CONTAINER_NAME == "--all" ]]; then if [[ $CONTAINER_NAME == "--all" ]]; then
eval "$cmd"
pct-list
else else
cmd="$cmd | egrep '^$CONTAINER_NAME '"
found=$(eval "$cmd") || ( >&2 echo "ERROR: container <$CONTAINER_NAME> not found!" && exit 10 )
echo "$found" | cut -d' ' -f2
conf=$(grep -m1 -rl --include="*.conf" "^hostname: $CONTAINER_NAME$" /etc/pve/lxc/) && conf=${conf#/etc/pve/lxc/} && conf=${conf%.conf}
[[ -z $conf ]] && (echo >&2 "ERROR: container <$CONTAINER_NAME> not found!" && exit 10)
echo $conf
fi fi
} }
# MAIN # MAIN
set -Eue set -Eue
[[ "$#" -lt 1 ]] && usage && exit 1 [[ "$#" -lt 1 ]] && usage && exit 1
lookup lookup

3
bin/pct-rename

@ -15,9 +15,6 @@ function usage {
function parse_options { function parse_options {
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
case "$1" in case "$1" in
list-bridges | list-zfs-pools | list-dir-pools)
COMMAND=$1
;;
--help | -h) --help | -h)
usage && exit 0 usage && exit 0
;; ;;

Loading…
Cancel
Save