Bash 修改脚本以仅备份1个数据库

Bash 修改脚本以仅备份1个数据库,bash,postgresql,backup,Bash,Postgresql,Backup,所以我有一个问题,下面的脚本用于每个数据库并为该数据库创建备份。$databases中i的这一行;执行但如何修改此脚本以仅备份名为“test_database”的1个数据库 只需稍微更改databases变量: touch $logfile timeslot=`date +%d%m%y%H%M%S` #databases=`sudo su - postgres -c "psql template1 -c '\l'|tail -n+4|cut -d'|' -f 1|sed -e '/^ *

所以我有一个问题,下面的脚本用于每个数据库并为该数据库创建备份。$databases中
i的这一行;执行
但如何修改此脚本以仅备份名为“test_database”的1个数据库


只需稍微更改databases变量:

touch $logfile
  timeslot=`date +%d%m%y%H%M%S`
  #databases=`sudo su - postgres -c "psql template1 -c '\l'|tail -n+4|cut -d'|' -f 1|sed -e '/^ *$/d'|sed -e '$ d'"`
  databases="test_database"
  for i in $databases; do
    if [ "$i" != "template0" ] && [ "$i" != "template1" ]; then
      timeinfo=`date '+%T %x'`
      echo "Backup and Vacuum started at $timeinfo for time slot $timeslot on database: $i " >> $logfile
      su - postgres -c "vacuumdb -z -U postgres $i >/dev/null 2>&1"
      su - postgres -c "pg_dump $i --exclude-table-data=sale_order -U postgres | gzip > \"/tmp/openerp-$i-$timeslot-database.gz\""
      cp /tmp/openerp-$i-$timeslot-database.gz $backup_dir/openerp-$i-$timeslot-database.gz
      chown $user:$user $backup_dir/openerp-$i-$timeslot-database.gz
      timeinfo=`date '+%T %x'`
      rm /tmp/openerp-$i-$timeslot-database.gz
      echo "Backup and Vacuum complete at $timeinfo for time slot $timeslot on database: $i " >> $logfile
    fi
done

databases=…
替换
databases=“test_database”
?@Cyrus我对bash脚本没有任何线索,所以如果你问我,那么我不知道,而不是
psql | tail | cut…
尝试使用:
psql-At template1-c'从pg_database中选择datname;'
而不是
timeinfo=…
u可以使用bash
printf-v timeinfo“%(%T%x)T”
touch $logfile
  timeslot=`date +%d%m%y%H%M%S`
  #databases=`sudo su - postgres -c "psql template1 -c '\l'|tail -n+4|cut -d'|' -f 1|sed -e '/^ *$/d'|sed -e '$ d'"`
  databases="test_database"
  for i in $databases; do
    if [ "$i" != "template0" ] && [ "$i" != "template1" ]; then
      timeinfo=`date '+%T %x'`
      echo "Backup and Vacuum started at $timeinfo for time slot $timeslot on database: $i " >> $logfile
      su - postgres -c "vacuumdb -z -U postgres $i >/dev/null 2>&1"
      su - postgres -c "pg_dump $i --exclude-table-data=sale_order -U postgres | gzip > \"/tmp/openerp-$i-$timeslot-database.gz\""
      cp /tmp/openerp-$i-$timeslot-database.gz $backup_dir/openerp-$i-$timeslot-database.gz
      chown $user:$user $backup_dir/openerp-$i-$timeslot-database.gz
      timeinfo=`date '+%T %x'`
      rm /tmp/openerp-$i-$timeslot-database.gz
      echo "Backup and Vacuum complete at $timeinfo for time slot $timeslot on database: $i " >> $logfile
    fi
done