Reverse lines in a file
tac /path/to/file
tac /path/to/file
tac /path/to/file
In vim, you can select the lines you need to reverse and issue :'<,'>!tac
.
Source: https://stackoverflow.com/a/742485/526189
Compare two files and get only the difference
# Using the `diff` tool
diff -a --suppress-common-lines -y a.txt b.txt > c.txt
# Using the `comm` tool
comm -2 -3 <(sort a.txt) <(sort b.txt)
# Using the `diff` tool
diff -a --suppress-common-lines -y a.txt b.txt > c.txt
# Using the `comm` tool
comm -2 -3 <(sort a.txt) <(sort b.txt)
# Using the `diff` tool diff -a --suppress-common-lines -y a.txt b.txt > c.txt # Using the `comm` tool comm -2 -3 <(sort a.txt) <(sort b.txt)
Source: https://stackoverflow.com/questions/4544709.
Prepend data to a file
sed -i -e "1i <your data goes here>" FILE_NAME
sed -i -e "1i <your data goes here>" FILE_NAME
sed -i -e "1i <your data goes here>" FILE_NAME
Have rsync print timestamps
Use the --out-format
option. For example:
rsync --out-format='%t %f' -avzu ~/myfolder/ user@1.1.1.1:/home/user/myfolder
rsync --out-format='%t %f' -avzu ~/myfolder/ user@1.1.1.1:/home/user/myfolder
rsync --out-format='%t %f' -avzu ~/myfolder/ user@1.1.1.1:/home/user/myfolder
Source: https://askubuntu.com/a/652532/118883
Upload folder to S3
# 1. Create a profile (optional, but recommended)
aws configure --profile <profile-name>
# 2. Upload folder to bucket
aws s3 cp --profile <profile-name> /path/to/folder/ s3://my.bucket.name/ --recursive
# 3. Custom endpoint (e.g., if you're uploading to Wasabi or other S3 compatible service)
aws s3 cp --profile <profile-name> /path/to/folder/ s3://my.bucket.name/ --recursive --endpoint-url=https://s3.us-west-1.wasabisys.com
# 1. Create a profile (optional, but recommended)
aws configure --profile <profile-name>
# 2. Upload folder to bucket
aws s3 cp --profile <profile-name> /path/to/folder/ s3://my.bucket.name/ --recursive
# 3. Custom endpoint (e.g., if you're uploading to Wasabi or other S3 compatible service)
aws s3 cp --profile <profile-name> /path/to/folder/ s3://my.bucket.name/ --recursive --endpoint-url=https://s3.us-west-1.wasabisys.com
# 1. Create a profile (optional, but recommended) aws configure --profile <profile-name> # 2. Upload folder to bucket aws s3 cp --profile <profile-name> /path/to/folder/ s3://my.bucket.name/ --recursive # 3. Custom endpoint (e.g., if you're uploading to Wasabi or other S3 compatible service) aws s3 cp --profile <profile-name> /path/to/folder/ s3://my.bucket.name/ --recursive --endpoint-url=https://s3.us-west-1.wasabisys.com
NOTE: S3 is a global service, but Wasabi is not, make sure you include the region in the endpoint.
Supervisor: keep process running
Supervisor is a tool that helps us keep processes running.
Installation (Debian/Ubuntu/*)
sudo apt install supervisor
sudo apt install supervisor
sudo apt install supervisor
Let’s say you want to have a program/script running all the time on your system, you can create the following config file /etc/supervisor/conf.d/app.conf
:
[program:app]
numprocs=1
directory=/home/user/projects/app/
command=scripts/server.sh
autostart=true
autorestart=true
stderr_logfile=/home/user/projects/app/logs/app.err.log
stdout_logfile=/home/user/projects/app/logs/app.out.log
[program:app]
numprocs=1
directory=/home/user/projects/app/
command=scripts/server.sh
autostart=true
autorestart=true
stderr_logfile=/home/user/projects/app/logs/app.err.log
stdout_logfile=/home/user/projects/app/logs/app.out.log
[program:app] numprocs=1 directory=/home/user/projects/app/ command=scripts/server.sh autostart=true autorestart=true stderr_logfile=/home/user/projects/app/logs/app.err.log stdout_logfile=/home/user/projects/app/logs/app.out.log
Enable and start supervisor
sudo systemctl enable supervisor
sudo systemctl start supervisor
sudo systemctl enable supervisor
sudo systemctl start supervisor
sudo systemctl enable supervisor sudo systemctl start supervisor
Check Supervisor status
$ sudo supervisorctl status
app RUNNING pid 16188, uptime 0:13:48
$ sudo supervisorctl status
app RUNNING pid 16188, uptime 0:13:48
$ sudo supervisorctl status app RUNNING pid 16188, uptime 0:13:48
MySQL: Loading local data is disabled
SET GLOBAL local_infile=1;
SET GLOBAL local_infile=1;
SET GLOBAL local_infile=1;