Categories
Git

Undo ‘git add’ safely ?

You can undo git add before commit with

git reset <file>
or
git reset <directory>

It will not delete any of your files

.gitignore could be useful before executing git add *

  • Step 1
touch .gitignore
  • Step 2
.DS_Store
/vendor

Categories
Unix

Couldn’t execute ‘SHOW TRIGGERS LIKE XXX”: Got error 28 from storage engine (1030)

That means space/memory issue on your server

Free space !

du -skh .
df
Categories
AWS

How to AWS mount EBS volume on ec2 instance ?

#1 – sudo lsblk -f

#2 – [ec2-user ~]$ sudo mount /dev/xvdf /data

Make an Amazon EBS volume available for use on Linux

PDFKindleRSS

After you attach an Amazon EBS volume to your instance, it is exposed as a block device. You can format the volume with any file system and then mount it. After you make the EBS volume available for use, you can access it in the same ways that you access any other volume. Any data written to this file system is written to the EBS volume and is transparent to applications using the device.

You can take snapshots of your EBS volume for backup purposes or to use as a baseline when you create another volume. For more information, see Amazon EBS snapshots.

You can get directions for volumes on a Windows instance from Make a volume available for use on Windows in the Amazon EC2 User Guide for Windows Instances.

Format and mount an attached volume

Suppose that you have an EC2 instance with an EBS volume for the root device, /dev/xvda, and that you have just attached an empty EBS volume to the instance using /dev/sdf. Use the following procedure to make the newly attached volume available for use.

To format and mount an EBS volume on Linux

  1. Connect to your instance using SSH. For more information, see Connect to your Linux instance.
  2. The device could be attached to the instance with a different device name than you specified in the block device mapping. For more information, see Name devices on Linux instances. Use the lsblk command to view your available disk devices and their mount points (if applicable) to help you determine the correct device name to use. The output of lsblk removes the /dev/ prefix from full device paths.The following is example output for an instance built on the Nitro System, which exposes EBS volumes as NVMe block devices. The root device is /dev/nvme0n1. The attached volume is /dev/nvme1n1, which is not yet mounted.[ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 10G 0 disk nvme0n1 259:1 0 8G 0 disk -nvme0n1p1 259:2 0 8G 0 part / -nvme0n1p128 259:3 0 1M 0 partThe following is example output for a T2 instance. The root device is /dev/xvda. The attached volume is /dev/xvdf, which is not yet mounted.[ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk -xvda1 202:1 0 8G 0 part / xvdf 202:80 0 10G 0 disk
  3. Determine whether there is a file system on the volume. New volumes are raw block devices, and you must create a file system on them before you can mount and use them. Volumes that were created from snapshots likely have a file system on them already; if you create a new file system on top of an existing file system, the operation overwrites your data.Use one or both of the following methods to determine whether there is a file system on the volume:
    • Use the file -s command to get information about a specific device, such as its file system type. If the output shows simply data, as in the following example output, there is no file system on the device[ec2-user ~]$ sudo file -s /dev/xvdf /dev/xvdf: dataIf the device has a file system, the command shows information about the file system type. For example, the following output shows a root device with the XFS file system.[ec2-user ~]$ sudo file -s /dev/xvda1 /dev/xvda1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
    • Use the lsblk -f command to get information about all of the devices attached to the instance.[ec2-user ~]$ sudo lsblk -fFor example, the following output shows that there are three devices attached to the instances—nvme1n1nvme0n1, and nvme2n1. The first column lists the devices and their partitions. The FSTYPE column shows the file system type for each device. If the column is empty for a specific device, it means that the device does not have a file system. In this case, nvme1n1nvme0n1 are both formatted using the XFS file system, while nvme2n1 does not have a file system.NAME FSTYPE LABEL UUID MOUNTPOINT nvme1n1 xfs 7f939f28-6dcc-4315-8c42-6806080b94dd nvme0n1 ├─nvme0n1p1 xfs / 90e29211-2de8-4967-b0fb-16f51a6e464c / └─nvme0n1p128 nvme2n1
    If the output from these commands show that there is no file system on the device, you must create one.
  4. (Conditional) If you discovered that there is a file system on the device in the previous step, skip this step. If you have an empty volume, use the mkfs -t command to create a file system on the volume.WarningDo not use this command if you’re mounting a volume that already has data on it (for example, a volume that was created from a snapshot). Otherwise, you’ll format the volume and delete the existing data.[ec2-user ~]$ sudo mkfs -t xfs /dev/xvdfIf you get an error that mkfs.xfs is not found, use the following command to install the XFS tools and then repeat the previous command:[ec2-user ~]$ sudo yum install xfsprogs
  5. Use the mkdir command to create a mount point directory for the volume. The mount point is where the volume is located in the file system tree and where you read and write files to after you mount the volume. The following example creates a directory named /data.[ec2-user ~]$ sudo mkdir /data
  6. Use the following command to mount the volume at the directory you created in the previous step.[ec2-user ~]$ sudo mount /dev/xvdf /data
  7. Review the file permissions of your new volume mount to make sure that your users and applications can write to the volume. For more information about file permissions, see File security at The Linux Documentation Project.
  8. The mount point is not automatically preserved after rebooting your instance. To automatically mount this EBS volume after reboot, see Automatically mount an attached volume after reboot.

Automatically mount an attached volume after reboot

To mount an attached EBS volume on every system reboot, add an entry for the device to the /etc/fstab file.

You can use the device name, such as /dev/xvdf, in /etc/fstab, but we recommend using the device’s 128-bit universally unique identifier (UUID) instead. Device names can change, but the UUID persists throughout the life of the partition. By using the UUID, you reduce the chances that the system becomes unbootable after a hardware reconfiguration. For more information, see Identify the EBS device.

To mount an attached volume automatically after reboot

  1. (Optional) Create a backup of your /etc/fstab file that you can use if you accidentally destroy or delete this file while editing it.[ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
  2. Use the blkid command to find the UUID of the device.[ec2-user ~]$ sudo blkid /dev/xvda1: LABEL="/" UUID="ca774df7-756d-4261-a3f1-76038323e572" TYPE="xfs" PARTLABEL="Linux" PARTUUID="02dcd367-e87c-4f2e-9a72-a3cf8f299c10" /dev/xvdf: UUID="aebf131c-6957-451e-8d34-ec978d9581ae" TYPE="xfs"For Ubuntu 18.04 use the lsblk command.[ec2-user ~]$ sudo lsblk -o +UUID
  3. Open the /etc/fstab file using any text editor, such as nano or vim.[ec2-user ~]$ sudo vim /etc/fstab
  4. Add the following entry to /etc/fstab to mount the device at the specified mount point. The fields are the UUID value returned by blkid (or lsblk for Ubuntu 18.04), the mount point, the file system, and the recommended file system mount options. For more information, see the manual page for fstab (run man fstab).UUID=aebf131c-6957-451e-8d34-ec978d9581ae /data xfs defaults,nofail 0 2NoteIf you ever boot your instance without this volume attached (for example, after moving the volume to another instance), the nofail mount option enables the instance to boot even if there are errors mounting the volume. Debian derivatives, including Ubuntu versions earlier than 16.04, must also add the nobootwait mount option.
  5. To verify that your entry works, run the following commands to unmount the device and then mount all file systems in /etc/fstab. If there are no errors, the /etc/fstab file is OK and your file system will mount automatically after it is rebooted.[ec2-user ~]$ sudo umount /data [ec2-user ~]$ sudo mount -aIf you receive an error message, address the errors in the file.WarningErrors in the /etc/fstab file can render a system unbootable. Do not shut down a system that has errors in the /etc/fstab file.If you are unsure how to correct errors in /etc/fstab and you created a backup file in the first step of this procedure, you can restore from your backup file using the following command.[ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab
Categories
javascript

Javascript to automatically scroll down to the bottom of a web page

<script type="application/javascript">
window.scrollTo(0,document.body.scrollHeight);
</script>
Categories
General Laravel

Quick Form creation Laravel

(1) create model.php + migration file + controller

php artisan make:model --migration --controller ContactForm

(2) Define table

public function up()
{
    Schema::create('contact_forms', function (Blueprint $table) {
        $table->id();
        $table->text('name');
        $table->text('email');
        $table->text('subject');
        $table->longText('Message');
        $table->timestamps();
    });
}

(3) create table in Database

php artisan migrate

(4) Define Route

Route::post('/contactform', '[email protected]' );

(5) Create Controller

/**
 * Laravel basic verification of the field email
 */
$this->validate($request, [
    'email' => 'required|email',
]);


/**
 * Create new record in teh database
 */
$contactForm = ContactForm::firstOrCreate([
    'email' => request('email'),
    'name' => request('name'),
    'message' => request('message'),
    'subject' => request('subject'),
]);


if (request()->wantsJson()) {
    Mail::to('[email protected]', request('contactform'))
        ->send(new \App\Mail\ContactForm($request));
    return response('Success Form has been Sent', 201);
}

/**
 * Redirect to the successful page creation
 */
return redirect('/')->with('flash', 'Success You subscribed to our Newsletter ');

(6) Create html email template

php artisan make:mail ContactForm --markdown=emails.contactform
Categories
Laravel

How to resolve storage/oauth-private.key does not exist or is not readable ?

Error when executing

php artisan route:list -c

Error

storage/oauth-private.key does not exist or is not readable

Solution

 php artisan config:clear

php artisan key:generate

php artisan config:clear

Now execute

php artisan route:list -c
Categories
Laravel

Upgrade from Laravel 6 to Laravel 8 ?

#1 – Make sure the composer.json looks like this

"require": {
   "php": "^7.2",
   "fideloper/proxy": "^4.0",
   "laravel/framework": "^8.0",
   "laravel/passport": "^10.0",
   "laravel/socialite": "^5.0",
   "laravel/tinker": "^2.0",
   "laravel/ui": "^3.0",
   "predis/predis": "^1.1"
},
"require-dev": {
   "facade/ignition": "^2.3.6",
   "mockery/mockery": "^1.0",
   "nunomaduro/collision": "^5.0",
   "phpunit/phpunit": "^9"
}

#2 – if you see following issue

laravel/framework replaces illuminate/support and thus cannot coexist with it.

Remove remove illuminate/support

composer remove illuminate/support

#3 – The report, render, shouldReport, and renderForConsole methods of your application’s App\Exceptions\Handler class should accept instances of the Throwable interface instead of Exception instances: Change app/Exceptions/Handler.php as follow

<?php

namespace App\Exceptions;

use Throwable;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;

class Handler extends ExceptionHandler
{
   /**
    * A list of the exception types that are not reported.
    *
    * @var array
    */
   protected $dontReport = [
       //
   ];

   /**
    * A list of the inputs that are never flashed for validation exceptions.
    *
    * @var array
    */
   protected $dontFlash = [
       'password',
       'password_confirmation',
   ];

   /**
    * Report or log an exception.
    *
    * @param  \Throwable  $exception
    * @return void
    */
   public function report(Throwable $exception)
   {
       parent::report($exception);
   }

   /**
    * Render an exception into an HTTP response.
    *
    * @param  \Illuminate\Http\Request  $request
    * @param  \Throwable  $exception
    * @return \Illuminate\Http\Response
    */
   public function render($request, Throwable $exception)
   {
       return parent::render($request, $exception);
   }
}

Helper additional issue

php artisan config:clear
php artisan key:generate
php artisan config:clear
Categories
API Web API

RESTFUL API – HTTP CODE 422 – Unprocessable Entity

The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.

Categories
General

Error: Cannot find module ‘read-pkg-up’

All issues such as

Error: Cannot find module 'interpret'
Error: Cannot find module 'read-pkg-up'
Error: Cannot find module 'lru-cache'

Solution

delete package-lock.json
npm upgrade

Categories
General Satori Architect

How to fix Satori 80004005 error ?

MRE1=92 -2147467259 SaveReport failed to save the file "0429C038" for report 364. (error 80004005)

Make Sure All parameters are passed

satoriTemplateClass  standard-letter
records_count        287 
permit_number        892 
piece_height         8.5 
piece_weight          0
piece_width           0 
piece_thickness       0.0294 
post_office_drop_date  2021-03-24 
presort_class          standard 
post_office_drop_date. 2021-03-24 

postage category

- letter
- flat
- postcard
  

presort class

firstClass 
standard 
nonprofit