added new notes

This commit is contained in:
2023-04-28 12:11:45 -04:00
parent 65c434952a
commit 95a1dcb604
2 changed files with 117 additions and 0 deletions

24
blog - fun with mysql.md Normal file
View File

@@ -0,0 +1,24 @@
# MySQL Tricks
## dump all MySQL databases at once
```bash
for i in $(mysqlshow -uroot -p | awk '{print $2}' | grep -v Databases); do mysqldump -uroot -p $i > $i.sql; done
```
## mysqldump without the artwork
Often you want to get results from the mysql client without all the ASCII box table formatting and column names.
The `-B` or `--batch` option will force the output to be TAB delimited no matter where the output is going.
The `-N` option will turn off column names in the output.
The following outputs the result of the query in TAB delimited format without column names:
```bash
mysql -B -N -e "select distinct table_schema from information_schema.tables"
```
Tags:
howto

View File

@@ -0,0 +1,93 @@
# Linux tips, one-liners and magic-tricks
## Truncate a text file
This is good for emptying huge log files without actually deleting and re-creating the file
```bash
echo -n '' > {target file}
```
For example
```bash
echo -n '' > /var/www/vhosts/horriblewebsite.com/statistics/logs/error_log
```
---
## Grep One-Liners
How to find specific things with grep
### find what looks like an IP Address
```bash
egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
```
### find what looks like an email address
```bash
egrep "\w+([._-]\w)*@\w+([._-]\w)*\.\w{2,4}"
```
### find what looks like a URL
```bash
egrep -o "(http|https)://[a-zA-Z0-9./?=_-]*"
```
---
## mempigs
A one-liner that will return the top 10 RAM consuming processes on a Linux machine
```bash
ps aux  | awk '{print $6/1024 " MB\t\t" $11 " " $12}'  | sort -n | tail -10
```
Alias it with something like this:
```bash
alias mempigs="ps aux | awk '{print \$6/1024 \" MB\t\t\" \$11 \" \" \$12}'  | sort -n | tail -10"
```
Then you only have to type **mempigs** to get a quick overview of what's eating all the memory.
---
## Filter comments and blank lines with grep
There are times when you may want to check the contents of a configuration file, but it's littered with explanatory comments. Normally, documentation in a file is a good thing, but sometimes you just want to see the relevant settings.
Filter out comments with something like this:
```bash
grep -v \# /etc/some-config-file.conf
```
The grep flag -v excludes the next argument from the returned results. Because the pound sign is a common bash idiom that denotes a comment, you need to escape it in the above example, or everything in the command after the pound sign would be considered a comment!
So, you've filtered out all the comments. But now you're left with lines separated by blank lines where the comments used to be.
How to remove those blank lines? Add another grep to the command:
```bash
grep -v \# /etc/some-config-file.conf | grep -v -e '^$'
```
The last grep uses the -v again to remove the next argument, but in this case, we are removing the regex (denoted by -e) `'^$'` which looks for the beginning of a line followed by the end of the line (in other words a line with no content, a blank line)
---
## Shrink and convert PDFs with ghostscript
REQ: ghostscript
```bash
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
```
If the `-dPDFSETTINGS=/screen` setting is too low quality to suit your needs, replace it with `-dPDFSETTINGS=/ebook` for better quality, but slightly larger PDFs. Delete the setting altogether for the high quality default.