Site Tools


generic_linux_commands

GENERIC LINUX COMMANDS

RENAME 'The' ROMS

1. Dry-run preview (generates rename list without executing):

  find /mnt/DOCS1/ROMs/Library/roms -type f -name "*, The*" | sort | while IFS= read -r filepath; do
      dir=$(dirname "$filepath")
      filename=$(basename "$filepath")
      if echo "$filename" | grep -qP '^\w.*\+.*[,] The '; then
          newname=$(echo "$filename" | sed 's/\(+ \)\(.*\), The \(.*\)/\1The \2 \3/')
      else
          newname=$(echo "$filename" | sed 's/^\(.*\), The \(.*\)$/The \1 \2/')
      fi
      echo "$dir | '$filename' -> '$newname'"
  done

2. Execute renames:

  find /mnt/DOCS1/ROMs/Library/roms -type f -name "*, The*" | sort -u | while IFS= read -r filepath; do
      dir=$(dirname "$filepath")
      filename=$(basename "$filepath")
      # Special case: combo pack where ", The" belongs to a subtitle within the combo
      if echo "$filename" | grep -qP '^\w.*\+.*[,] The '; then
          newname=$(echo "$filename" | sed 's/\(+ \)\(.*\), The \(.*\)/\1The \2 \3/')
      else
          newname=$(echo "$filename" | sed 's/^\(.*\), The \(.*\)$/The \1 \2/')
      fi
      if [ "$filename" != "$newname" ]; then
          mv -- "$filepath" "$dir/$newname"
          echo "Renamed: $filename"
      fi
  done

Key sed patterns:

  1. Standard: s/^\(.*\), The \(.*\)$/The \1 \2/ — captures everything before , The as \1 and everything after as \2, then prepends The
  2. Combo pack: s/\(+ \)\(.*\), The \(.*\)/\1The \2 \3/ — moves The to before the subtitle within a +-delimited combo title

RENAME 'A', 'An' ROMS

Dry-run preview:

  find /mnt/DOCS1/ROMs/Library/roms -type f \( -name "*, A *" -o -name "*, An *" \) | sort | while IFS= read -r filepath; do
      dir=$(dirname "$filepath")
      filename=$(basename "$filepath")
      newname=$(echo "$filename" | sed 's/^\(.*\), \(An\{0,1\}\) \(.*\)$/\2 \1 \3/')
      echo "'$filename'"
      echo "  -> '$newname'"
  done

Execute renames:

  find /mnt/DOCS1/ROMs/Library/roms -type f \( -name "*, A *" -o -name "*, An *" \) | sort | while IFS= read -r filepath; do
      dir=$(dirname "$filepath")
      filename=$(basename "$filepath")
      newname=$(echo "$filename" | sed 's/^\(.*\), \(An\{0,1\}\) \(.*\)$/\2 \1 \3/')
      if [ "$filename" != "$newname" ]; then
          mv -- "$filepath" "$dir/$newname"
          echo "Renamed: '$filename' -> '$newname'"
      fi
  done

Key sed pattern:

  1. s/^\(.*\), \(An\{0,1\}\) \(.*\)$/\2 \1 \3/ — \(An\{0,1\}\) matches either A or An, captures it as \2, then reconstructs as \2 \1 \3

LMS PROD OPEN NEW TERMINAL

gnome-terminal --geometry=157x54+0+0 --tab --command="ssh lms05.lms.ecu.edu.au" --tab --command="ssh lms07.lms.ecu.edu.au" --tab --command="ssh lms08.lms.ecu.edu.au" --tab --command="ssh lms10.lms.ecu.edu.au" --tab --command="ssh lms14.lms.ecu.edu.au" &

RUN COMMAND AS ANOTHER USER

# sudo -u zabbix /app/wcms/bin/webmonitor homepage_nocache

LIST LAST 5 RPMS INSTALLED

# rpm -qa --queryformat '%{installtime} (%{installtime:date}) %{name}\n' | sort -n | tail -5

STRIP NON-DIRECTIVES FROM CONFIG

# egrep -v "^#|^$|[ ]*#" /etc/httpd.alt/conf/httpd.conf | less

FIND SEGFAULTS IN APACHE ERRORS SORTED BY DATE

# zcat /var/log/httpd/error_log.*.gz |grep Seg|sort -k2|less
# cat /var/log/httpd/error_log |grep Seg|sort -k2|less

DISPLAY LIST OF LAST REBOOT ENTIRES

# last reboot | less
# ln -s /app/wcms/bin/findroots /usr/local/bin/

LOGIN TO INTERNAL FIREWALL (from 139.230.244.)

# telnet jogwint.net.ecu.edu.au 259

READ SSH KEY PROPERTIES

$ ssh-keygen -lf .ssh/id_rsa.pub

SET PEAR TO USE PROXY

# pear config-set http_proxy http://bpm_applications:CRamge05@proxy.ecu.edu.au:80

SET PROXY ENV

# export http_proxy="http://bpm_applications:CRamge05@proxy.ecu.edu.au:80"

TAR CHECK

# tar -ztvf ../../wcms.ecu/bak/ecu_3_20_3-2009-08-25_10-08-backup.tar.gz|grep .dump

EXTRACT SINGLE FILE FROM TAR

$ tar -zxvf ../../wcms.ecu/bak/ecu_3_20_3-2009-08-25_13-56-backup.tar.gz ecu_3_20_3/wcmsqa-2009-08-25_13-56.dump

TAR WITH EXCLUDE

cd /var/lib/docker/volumes/
tar --exclude='fw_stack_postgres-data/_data/backups/*.gz' -cvzf fw_stack_postgres-data_`date +%Y-%m-%dT%H-%M-%S`.tgz fw_stack_postgres-data/
rsync -av *.tgz /workspace/backups.kargath/volumes/

$ tar cvzf filename.tar.gz /dir1/dir2 --exclude "/dir1/dir2/direxcluded"

MOVE FOLDER INTO ANOTHER FOLDER

# rsync -av CLT webarchive/

RSYNC to local desktop

# rsync -avze ssh weekly/StaffDirLINUX sspaldin@10.31.66.91:/cygdrive/c/Users/sspaldin/Desktop
rsync -avze ssh  sspaldin@10.31.66.91:/cygdrive/c/Users/sspaldin/Desktop

RSYNC EXCLUDE

$ rsync -avze ssh --exclude 'cache' --exclude 'data' root@webcms-jo-app-prod01.cit.ecu.edu.au:/app/wcms/ecu_3_22_3/ .

RESTORE FILES FROM BACKUP

# dsmc restore -inactive -pick /s02/vhosts/web01.ads.ecu.edu.au/htdocs/server/code/</code>

RESTORE FILES TO A DIFFERENT LOCATION

# dsmc restore -pick -inactive -todate=29-09-2009 "/s01/wcms/ecu_3_22_3/data/private/logs/*.lo*" /tmp/restore/ -preser=none

Note: symbolic links don't work

SOSREPORT

# sosreport -k apache.log=on,cluster.gfslockdump=on,cluster.lockdump=on,devicemapper.lvmdump=on,general.syslogsize=on,kernel.modinfo=on,networking.traceroute=on,rpm.rpmva=on,yum.yumlist=on,

LIST PHP.INI

# grep -v "^;" /etc/php.ini | grep -v "^$" | less

LIST PACKAGES

# rpm -qa |sort > /app/wcms.ecu/`hostname`-rpms.txt

LIST FILES IN PACKAGE

# rpm -ql httpd

LIST OPEN FILES, SORTED BY SIZE, OUTPUT TO DATED FILE

# lsof /s02 |sort -nr --key=7 |awk '{print $1,$2,$3,$7,$9}' >/tmp/lsof_s02_`date +%Y-%m-%dT%H-%M-%S`.txt

WGET A PAGE SPECIFYING A HEADER AND OUTPUT FILE AND DISPLAYING HEADERS

# wget -S --no-cache --header "Host: www.ecu.edu.au" http://www.ecu.edu.au/ -O index.html

WATCH APACHE LOG FOR WARNINGS

# tail -f -n0 /var/log/httpd/error_log|grep warning

UNTAR SINGLE FILE/DIRECTORY

# tar -x ecu_3_28_5/data/private/conf/* -vzf ecu_3_28_5-2011-08-11_11-23-backup.tar.gz
# tar -x ecu_3_28_5/core/lib/web/images/icons/asset_map/matrix_logo.gif -vzf ecu_3_28_5-2011-08-11_11-23-backup.tar.gz

Source

commands.txt on Seagate 3TB (H:\Personal\BAK\WHD71610013\Documents\Documentation\commands.txt)

generic_linux_commands.txt · Last modified: by admin