Ubuntu Notes: Set up autossh as systemd useful-reminder commands

 sudo vim /etc/systemd/system/permanentAutossh.service

========================================

[Unit]

Description=Keeps a tunnel to myOciFreeNat open

After=network-online.target


[Service]

User=<username>

Environment="AUTOSSH_GATETIME=0"

ExecStart=/usr/bin/autossh -M 0 -q -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -L 4322:127.0.0.1:5432 -i /<ssh_private_key_file_absolute_path> <username>@<ip_address> -p 22


[Install]

WantedBy=multi-user.target

========================================

sudo systemctl daemon-reload

sudo systemctl enable permanentAutossh

sudo systemctl start permanentAutossh

==================

sudo systemctl daemon-reload

sudo systemctl restart permanentAutossh

sudo systemctl status permanentAutossh

======================

sudo systemctl stop permanentAutossh

sudo systemctl disable permanentAutossh

sudo rm /etc/systemd/system/permanentAutossh.service

Reinstall Network-Manager in Ubuntu

 Assumptions: Network-Manager is somehow lost (or currepted) while updating/deleting some software and Internet access is lost. Internet access was there using data-cable usb port using mobile-internet connection.

Get Logical Name of the port: Type in terminal 
<sudo lshw -C network>

you will get list of ports with there logical name

Connect to internet using command:
<sudo dhclient <your_port_name>> e.g. in my case it was <sudo dhclient usb0>

Then reinstall Network-Manager using command:
<sudo apt-get install network-manager>


Done!

Ubuntu Notes: Using 7z in terminal

 I> Compress file using 7z

7z a <compressed_file_name.7z> file1 file2 

II> Decompress file using 7z

7z e <compressed_file_name>.7z

Ubuntu Notes: Commands to Shutdown, Restart

 1> to shutdown computer

sudo poweroff;

sudo shutdown -h now;

2> to restart computer

sudo reboot;

Ubuntu Notes: Set Password for a user in ubuntu

 Type:
sudo passwd <username>

Then type new password and repeat type new password as prompted


DONE!

How do Manage Postgresql 13 Services in Ubuntu 20.04 LTS

1> Stop Postgresql Service:

sudo systemctl stop  postgresql

2> Start Postgresql Service:

sudo systemctl start  postgresql

3> Restart Postgresql Service:

sudo systemctl restart postgresql

4> Check Postgresql Service Status:

sudo systemctl status postgresql 

How do I increased Swap Memory of Ubuntu OS using terminal from 1GB to 7GB

 Hi, I have increase my Ubuntu OS swap memory from 1GB to 7GB by adding additional 6GB space to swap. Process which I followed is as follows:

1> Check previous Swap Memory:

cat /proc/swaps

2> Check previous Swap Memory:

swapon

3> Check previous Swap Memory:

free

4> Create new Swap Memory:

sudo dd if=/dev/zero of=/newswap bs=1024 count=6M

5> Set permissions for new Swap Memory

sudo chmod 0600 /newswap

6> Bake new swap:

sudo mkswap /newswap

7> Turn on new swap:

sudo swapon /newswap

8> Check new Swap Memory:

swapon

9> Modify /etc/fstab file by adding following lines at the end

/newswap    swap    swap   defaults 0 0

Done!

Google Cloud Plateform VM Instances: How to connect one VM Instance to other using SSH and Internal IP Address

 Dear Friends, all of us know that there are two kinds of IP Address that can be assigned to GCP VM Instances (i.e Compute Engine), now if you take external IP address, without any reason then you will have to pay since external IP address is not free.

So if you need to connect two compute engines via internal IP address using terminal for same region, via SSH, process is same as you connect via extermal IP address.

i.e ssh <username>@<internal_ip_address>.

Other advantage of connection via internal IP address is that it uses Internal LAN instead of Internet Data for communication will in turn will save lot of energy.

Update Time-Zone in Ubuntu 20.04 terminal

Check time zone by date command 


sudo timedatectl set-timezone <your_timezone>

eg sudo timedatectl set-timezone Asia/Kolkata


Then after setting check again using date command.

Note: After updating timezone always restart using command

sudo reboot, for proper functioning of cronzobs, etc

Set Up Default Password for Postgres User

 Upon installing postgres, there is no password for Postgres User

This is the way to set up default password for Postgres User in Linux

  1. Open terminal
  2. Type: sudo -u postgres psql <-p portNo> eg sudo -u postgres psql -p 5433 or sudo -u postgres psql for default port 5432
  3. Type: postgres=# ALTER USER postgres PASSWORD '<your desired password>';
  4. Type: \q to exit postgres and return back to terminal login
DONE!

How to do Instance Scheduling in Google Cloud Plateform

Instance Scheduling provides easy way to turn copmpute engine instance on & off at particular timing very easily.

This the the way, how I achieved this for doing this work.

Log in to console.cloude.google.com

  1. Go to IAM & Admin -> Roles
  2. Choose Create roles and create role with permissions: 


  3. Go to IAM & Admin -> IAM
  4. Click Google -Provided Role grant...


  5. Search for service-<Your-ProjectId>@compute-system.iam.gserviceaccount.com in filter and edit to add role you created in Step 2 above
  6. Go to Compute Engine -> VM Instances -> Instance Schedule
  7. Create an instance schedule with start - stop timing as per your requirement
  8. you can choose start-stop timing as per CRON format of Linux for further detailing.
  9. Now once instance schedule is created, click it and click Add Instance to Schedule


  10. Choose your VM Instances for this schedule and its done
Hope you enjoyed this reading and this reading may help you for future project.


Java Encryption - Decryption Code

package myLib;


import java.io.UnsupportedEncodingException;

import java.security.GeneralSecurityException;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

import java.security.SecureRandom;

import javax.crypto.Cipher;

import javax.crypto.NoSuchPaddingException;

import javax.crypto.spec.IvParameterSpec;

import javax.crypto.spec.SecretKeySpec;

import javax.xml.bind.DatatypeConverter;

import org.apache.xml.security.exceptions.Base64DecodingException;


/**

 *

 * @author Mohit Kumar Gupta

 */

public class CryptoAES256 {


   public static void main(String[] args) {

        try {

            String passP = "Bar12345Barjhggfh12345"; // 128 bit key

            String encryptedString = encrypt(passP, "Hello Mohit");

            System.out.println("EncryptedString= " + encryptedString);

            String decryptedString = decrypt(passP, encryptedString);

            System.out.println("DecryptedString= " + decryptedString);

//        System.out.println(decrypt(key, initVector,

//                encrypt(key, initVector, "Hello World")));


            String passPhase = "Bar1234";

            String value = "Hello Mohit 1 2 3 4 5 6";

            String enc = encrypt(passPhase, value);

            String dec = decrypt(passPhase, enc);

            System.out.println(enc);

            System.out.println(dec);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }


    private static SecretKeySpec getKeySpec(String passphrase) throws NoSuchAlgorithmException, UnsupportedEncodingException {

        MessageDigest digest = MessageDigest.getInstance("SHA-256");

        return new SecretKeySpec(digest.digest(passphrase.getBytes("UTF-8")), "AES");

    }


    private static Cipher getCipher() throws NoSuchPaddingException, NoSuchAlgorithmException {

        return Cipher.getInstance("AES/CBC/PKCS5PADDING");

    }


    public static String encrypt(String passphrase, String value) throws GeneralSecurityException, UnsupportedEncodingException {

        byte[] initVector = new byte[16];

        SecureRandom.getInstanceStrong().nextBytes(initVector);

        Cipher cipher = getCipher();

        cipher.init(Cipher.ENCRYPT_MODE, getKeySpec(passphrase), new IvParameterSpec(initVector));

        byte[] encrypted = cipher.doFinal(value.getBytes());

        return DatatypeConverter.printBase64Binary(initVector)

                + DatatypeConverter.printBase64Binary(encrypted);

    }


    public static String decrypt(String passphrase, String encrypted) throws GeneralSecurityException, UnsupportedEncodingException, Base64DecodingException {

        byte[] initVector = DatatypeConverter.parseBase64Binary(encrypted.substring(0, 24));

        Cipher cipher = getCipher();

        cipher.init(Cipher.DECRYPT_MODE, getKeySpec(passphrase), new IvParameterSpec(initVector));

        byte[] original = cipher.doFinal(DatatypeConverter.parseBase64Binary(encrypted.substring(24)));

        return new String(original);

    }

}


Regarding site Free Browser Tool (https://free-browser-tools.mohitkrgupta.dev) (discussion with google search AI)

Various discussions with Google Search AI regarding site  Free Browser Tool are as below: site free-browser-tools.mohitkrgupta.dev what doe...