Posts tagged with “linux”

Linux TIPS collect (神奇的知识集合)

  1. http_proxy environment in sudo command: http_proxy=xxx:xxx sudo yourcommand doesn't work, you should sudo http_proxy=xxx:yyy yourcommand instead.
  2. ssh running local script: ssh username@hostname 'bash -s' < your.local.script.sh
  3. ssh running local script with paraemters: ssh username@hostname < your.local.script.sh 'bash -s' yourparam1 yourparam2 doesn't work, you should runssh username@hostname < your.local.script.sh 'bash -s' -- yourparam1 yourparam2
  4. make your fonts configuration work without a reboot: sudo fc-cache -fv

How to let Supervisord wait 1 second before restarting my program?

It spent more than half an hour. Finally, I found this solution.... very simple!

#!/bin/bash
/usr/local/bin/noip2 -c /usr/local/etc/no-ip2.conf
sleep 1

noip sucks!

source

Database structure backup & Data dictionary automatically generation

Two bash script achieved the goals in this subject.

1. Exporting data dictionary

cat utils/exportDbDictionary 
if [ $# != 2 ] ; then
    echo "USAGE: $0 dbname tablename"
    echo " e.g.: $0 IDServer AspNetUsers"
    exit 1;
fi

document_path=/YourProjectName/documents/database

[ -d $document_path/$1 ] || mkdir -p $document_path/$1
mysqlshow $1 $2 | sed 's/+/|/g' | sed '1,2d' | sed '$d' | awk -F"[|]" '{print $2"|"$3"|"$5"|"$6"|"$7"|"$10}' | sed 's/ *$//g' > $document_path/$1/$2.md

People should always add comments to their field definitions. As soon as the definition of a table has been done, run this script could automatically generate a markdown table with the name of tableName.md.

2. export database structure without auto_incrment= statements

cat utils/backupDbStructure 
backupFile=/YourProjectName/documents/database/databaseStructure.sql
mysqldump -d --databases YourDB1 YourDB2 YourDB3 | sed 's/ AUTO_INCREMENT=[0-9]*//g' > $backupFile

When you made some changes to your database, run backupDbStruture script will automatically generate the latest table structure into one file. You could commit it later with your code change together.

Setting timezone for Linux system

sudo timedatectl set-timezone Asia/Shanghai 

Setting timezone for MySQL

add the line below to [mysqld] section in /etc/my.cnf

default=time-zone = "+8:00"

Let your Linux system use memory as much as possible instead of swap space.

$ sudo vim /etc/sysctl.conf

add the line below to the end of this file:

vm.swappiness = 10

save and exit. Execute 

$ sudo sysctl -p

vm.swappiness = 10 means that the Linux system will only start using swap space when your available physical memory is less than 10%.