6 Online Tools for Generating and Testing Cron Jobs for Linux

As a Linux system administrator, you can perform time-based scheduling of jobs/tasks using online cron job services or Cron, a powerful utility available in Unix/Linux systems.

In Linux, cron runs as a daemon and can be used to schedule tasks such as commands or shell scripts to perform various kinds of backups, system updates and much more, that run periodically and automatically in the background at specific times, dates, or intervals.

Scheduling a cronjob with the correct syntax can be confusing sometimes, wrong expressions can cause cronjobs to fail or not even run at all. In this article, we will list 6 useful online (web based) utilities for creating and testing cronjob scheduling syntax in Linux.

1. Crontab Generator

Crontab Generator is a useful online utility for generating a crontab entry to help schedule a job. It offers a simple, descriptive generator that can help you to produce a crontab syntax that you can copy and paste to your crontab file.

Crontab Generator

Crontab Generator

2. Cron Maker


Cron Maker is a web based utility which helps you to build cron expressions; it employs the Quartz open source library and all expressions are based on Quartz cron format. It also enables you to view next scheduled dates (simply enter a cronjob expression and calculate the next dates).

Cron Maker

Cron Maker

3. Crontab GUI

Crontab GUI is a great and the original online crontab editor. It works well (fully optimized) on mobile devices (you can generate cron syntax on your smart phone or tablet PC’s web browser).

Crontab GUI Tool

Crontab GUI Tool

4. CRON Tester

CRON Tester is a useful cron tester that allows you to test your cron time definitions. All you need to do is copy and paste your cron syntax in the cron definition field, then choose the number of iterations and click on “Test” to see the various dates on which it will run.

Cron Tester

Cron Tester

5. Crontab Guru

Crontab Guru is a simple online cron schedule expression editor. In addition, it provides a useful means of monitoring your cronjob. All you need to do is copy a command snippet provided and append at the end of the crontab definition. In case your cron job fails or doesn’t even start, you will receive an alert email.

Crontab Guru

Crontab Guru

6. Easycron

Easycron is a great web based cron scheduler for corntab.com cron editor. You can create a cron job by specifying a “URL to call”, set when it should be executed, specify a cron expression or add it manually from a descriptive form. Importantly, you can optionally use basic HTTP authentication for a small layer of security.

EasyCron

EasyCron

You might also like to read these following related articles on Cron scheduler utility.

  1. 11 Cron Job Scheduling Examples in Linux
  2. Cron Vs Anacron: How to Schedule Jobs Using Anacron on Linux
  3. How to Run PHP Script as Normal User with Cron

That’s all! If you know of any other useful web based cronjob expression generator or testers missing in the list above, let us know via the comment section below.

How to Use Continuous Release (CR) Repository in CentOS

‘,
enableHover: false,
enableTracking: true,
buttons: { twitter: {via: ‘tecmint’}},
click: function(api, options){
api.simulateClick();
api.openPopup(‘twitter’);
}
});
jQuery(‘#facebook’).sharrre({
share: {
facebook: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
click: function(api, options){
api.simulateClick();
api.openPopup(‘facebook’);
}
});
jQuery(‘#googleplus’).sharrre({
share: {
googlePlus: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
urlCurl: ‘https://www.tecmint.com/wp-content/themes/tecmint/js/sharrre.php’,
click: function(api, options){
api.simulateClick();
api.openPopup(‘googlePlus’);
}
});
jQuery(‘#linkedin’).sharrre({
share: {
linkedin: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
buttons: {
linkedin: {
description: ‘How to Use Continuous Release (CR) Repository in CentOS’,media: ‘https://www.tecmint.com/wp-content/uploads/2018/01/Enable-CentOS-CR-Repository.png’ }
},
click: function(api, options){
api.simulateClick();
api.openPopup(‘linkedin’);
}
});
// Scrollable sharrre bar, contributed by Erik Frye. Awesome!
var shareContainer = jQuery(“.sharrre-container”),
header = jQuery(‘#header’),
postEntry = jQuery(‘.entry’),
$window = jQuery(window),
distanceFromTop = 20,
startSharePosition = shareContainer.offset(),
contentBottom = postEntry.offset().top + postEntry.outerHeight(),
topOfTemplate = header.offset().top;
getTopSpacing();
shareScroll = function(){
if($window.width() > 719){ var scrollTop = $window.scrollTop() + topOfTemplate,
stopLocation = contentBottom – (shareContainer.outerHeight() + topSpacing);
if(scrollTop > stopLocation){
shareContainer.offset({top: contentBottom – shareContainer.outerHeight(),left: startSharePosition.left});
}
else if(scrollTop >= postEntry.offset().top-topSpacing){
shareContainer.offset({top: scrollTop + topSpacing, left: startSharePosition.left});
}else if(scrollTop 1024)
topSpacing = distanceFromTop + jQuery(‘.nav-wrap’).outerHeight();
else
topSpacing = distanceFromTop;
}
});
]]>

The Complete 2018 CompTIA Certification Training Bundle (14 Courses)

Today, IT success stories start with the CompTIA certifications and here is The Complete 2018 CompTIA Certification Training Bundle, the ultimate (14 Courses, 140+ Hours!) IT certification training guide to prepare you to excel in various CompTIA certification exams.

The training in this bundle starts with covering the fundamentals of computer technology, installation, and configuration of PCs, laptops as well as related hardware. Then you will learn the necessary skills for installing and configuring PC operating systems.

In the third course, you will dive into the fundamentals of clouding computing. Thereafter, you will move into security, where you will learn communication security, infrastructure security, cryptography, operational security, and general security concepts.

Further more, you will also study software operating systems, common file types, software management best practices, plus lots more. You will also learn how to secure mobile devices.


Importantly, you will master project management, where you will understand the entire project life cycle, from initiation and planning through execution. You will also master Linux system administration, under which you will study user administration, group and profile management, shell scripting and I/O control statements, networking and much more in Linux.

The final course in this bundle will take you through networking, under which you will learn the knowledge and skills needed to install, manage, and troubleshoot a variety of networks on any platform.

What’s included in This Bundle:

  • CompTIA A+ 220-901
  • CompTIA A+ 220-902
  • CompTIA Cloud Essentials CLO-001
  • CompTIA Security+ SY0-401
  • CompTIA Security+ SY0-501
  • CompTIA IT Fundamentals FC0-U51
  • CompTIA Mobility+ MB0-001
  • CompTIA Cloud+
  • CompTIA Project+ PK0-003
  • CompTIA Linux+ XKO-002
  • CompTIA CSA+
  • CompTIA Advanced Security Practitioner
  • CompTIA Certified Healthcare IT Technician Exam Study Guide
  • CompTIA Network+ N10-006

Start a path to a lucrative IT career by subscribing to this remarkable bundle now, at 98% off or for as low as $59 on Tecmint Deals.

How to Save Top Command Output to a File

Linux top command is highly used by system administrators to display system statistics in real time regarding system uptime and load average, used memory, running tasks, a summary of processes or threads and detailed information about each running process.

However, besides real time viewing of the running system, top command output can be saved to a file, by using the -b flag, which instructs top to operate in batch mode and -n flag to specify the amount of iteration the command should output.

In the below example, we’ll redirect the output of top command to top.txt file in the current working directory. The -n argument will be used to send only one snapshot of the command to the mentioned file.

$ top -b -n 1 > top.txt

To read the resulted file, use a command line file reader utility, such as cat command, less or more.

$ less top.txt
View Output of Top Command

View Output of Top Command


To grab five iteration of top command, execute the command as shown in the below excerpt.

$ top -b -n 5 > top-5iterations.txt

In order to display only the number of running tasks from the resulted file, use the grep filter, as shown in the below command example.

$ cat top-5iterations.txt | grep Tasks
Show Top 5 Running Tasks

Show Top 5 Running Tasks

To take a snapshot of a specific process in top utility, execute command with the PID (-p) flag. To get the PID of a running process, issue pidof command against the name of the running process.

In this example we’ll monitor the cron process via top command by taking three snapshots of the PID.

$ pidof crond
$ top -p 678 -b -n3 > cron.txt
$ cat cron.txt
Watch Process Usage in Top Command

Watch Process Usage in Top Command

Using a for iteration loop, we can display a process statistics via its PID, each two seconds, as shown in the below example. The output of the loop can also be redirected to a file. We’ll use the same cron PID as shown in the above example.

$ for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done 

Redirect loop output to file.

$ for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done >> cron.txt
$ cat cron.txt
Find Linux Process Statistics

Find Linux Process Statistics

These are just a few examples on how you can monitor and gather system and process statistics via top command.

How to Change FTP Port in Linux

FTP or File Transfer Protocol is one of the oldest network protocol used today as standard file transfers over computer networks. FTP protocol uses the standard port 21/TCP as command port. Although, there are a lot of implementations of FTP protocol in server-side in Linux, in this guide we’ll cover how to change the port number in the Proftpd service implementation.

In order to change Proftpd service default port in Linux, first open Proftpd main configuration file for editing with your favorite text editor by issuing the below command. The opened file has different paths, specific to your own installed Linux distribution, as follows.

# nano /etc/proftpd.conf [On CentOS/RHEL]
# nano /etc/proftpd/proftpd.conf [On Debian/Ubuntu]

In proftpd.conf file, search and comment the line that begins with Port 21. You need to add a hashtag (#) in front of the line in order to comment the line.

Then, under this line, add a new port line with the new port number. You can add any TCP non-standard port between 1024 to 65535, with the condition that the new port is not already taken in your system by other application which binds on it.


In this example we’ll bind FTP service on port 2121/TCP.

#Port 21
Port 2121
Change FTP Port in Debian & Ubuntu

Change FTP Port in Debian & Ubuntu

In RHEL based distributions, the Port line is not present in Proftpd configuration file. To change the port, just add a new port line at the top of the configuration file, as illustrated in the below excerpt.

Port 2121
Change FTP Port in CentOS & RHEL

Change FTP Port in CentOS & RHEL

After you’ve changed the port number, restart the Proftpd daemon to apply changes and issue netstat command to confirm that FTP service listens on the new 2121/TCP port.

# systemctl restart proftpd
# netstat -tlpn| grep ftp
OR
# ss -tlpn| grep ftp
Confirm FTP Port

Confirm FTP Port

Under CentOS or RHEL Linux based distributions, install policycoreutils package and add the below SELinux rules in order for the FTP daemon to bind on the 2121 port.

# yum install policycoreutils
# semanage port -a -t http_port_t -p tcp 2121
# semanage port -m -t http_port_t -p tcp 2121
# systemctl restart proftpd

Finally, update your Linux distribution firewall rules in order to allow inbound traffic on the new FTP port. Also, check FTP server passive port range and make sure you also update the firewall rules to reflect passive port range.

Use Glances to Monitor Remote Linux in Web Server Mode

Glances is a free open source, modern, cross-platform, real-time top and htop like system monitoring tool. It offers advanced features compared to its counterparts, and can run in different modes: as a standalone, in client/server mode and in web server mode.

Considering the web server mode, you do not necessarily need to log into your remote server via SSH to run glances, you can run it in web server mode and access it via a web browser to remotely monitor your Linux server, as explained below.

To run glances in web server mode, you need to install it together with the Python bottle module, a fast, simple and lightweight WSGI micro web-framework, using the appropriate command for your Linux distribution.

$ sudo apt install glances python-bottle #Debian/Ubuntu
$ sudo yum install glances python-bottle #RHEL/CentOS
$ sudo dnf install glancespython-bottle #Fedora 22+

Alternatively, install it using PIP command like shown.

$ sudo pip install bottle


Once you have installed the above packages, launch glances with the -w flag to run it in web server mode. By default, it will listen on port 61208.

$ glances -w OR
$ glances -w &

If you are running firewalld services, then you should open port 61208 to allow inbound traffic to that port.

$ sudo firewall-cmd --permanent --add-port=61208/tcp
$ sudo firewall-cmd --reload

For UFW firewall, run these commands.

$ sudo ufw allow 61208/tcp
$ sudo ufw allow reload

After that, from a web browser, use the URL http://SERVER_IP:61208/ to access the glances UI.

If you are using systemd system and services manager, you can run glances in web server mode as a service for efficient management, as explained in the next section. I actually prefer this method to running it as a background process.

Run Glances in Web Server Mode as a Service

Start by creating your service unit file (which I have preferred to name as glancesweb.service) under /usr/lib/systemd/system/glancesweb.service.

$ sudo vim /usr/lib/systemd/system/glancesweb.service

Then copy and paste the unit file configuration below in it.

[Unit]
Description = Glances in Web Server Mode
After = network.target
[Service]
ExecStart = /usr/bin/glances -w -t 5
[Install]
WantedBy = multi-user.target

The above configuration tells systemd that this is a unit of type service, it should be loaded after the network.target.

And once the system is in the network target, systemd will invoke the command “/usr/bin/glances -w -t 5” as a service. The -t specifies an interval for live updates in seconds.

The [install] section informs systemd that this service is wanted by “multi-user.target”. Therefore, when you enable it, a symbolic link is created from the /etc/systemd/system/multi-user.target.wants/glancesweb.service to /usr/lib/systemd/system/glancesweb.service. Disabling it will delete this symbolic link.

Next, enable your new systemd service, start and view its status as follows.

$ sudo systemctl enable connection.service
$ sudo systemctl start connection.service
$ sudo systemctl status connection.service

Finally, from your web browser, use the URL http://SERVER_IP:61208/ to remotely monitor your Linux servers via the glances UI, on any device (smart phone, tablet or computer).

Monitor Remote Linux Server Under Glances

Monitor Remote Linux Server Under Glances

Monitor Remote Linux Processes Under Glances

Monitor Remote Linux Processes Under Glances

You can change the refresh rate of the page, simply add the period in seconds at the end of the URL, this sets the refresh rate to 8 seconds.

http://SERVERI_P:61208/8 

One downside of running glances in web server mode is that, if the Internet connection is poor the client tends to easily disconnect from the server.

You can learn how to create new systemd services from this guide:

  1. How to Create and Run New Service Units in Systemd Using Shell Script

That’s all! If you have any questions or additional information to add, use the comment from below.

Configuration of Zone Minder on Debian 9

In an earlier article, the installation of the security monitoring system Zone Minder on Debian 9 was covered. The next step in getting Zone Minder working is to configure storage. By default Zone Minder will store camera information in /var/cache/zoneminder/*. This could be problematic for systems that don’t have large amounts of local storage.

This part of the configuration is primarily important for individuals wishing to offload the storage of the recorded imagery to a secondary storage system. The system that is being setup in this lab has approximately 140GB of storage locally. Depending on the amount, quality, and retention of videos/images being taken by Zone Minder, this small amount of storage space can quickly be exhausted.

Zone Minder Lab Environment

While this is a simplification of most IP camera installations, the concepts will still work assuming that the cameras have network connectivity to the Zone Minder server.

Zone Minder Lab Setup Diagram

Zone Minder Lab Setup Diagram

Server Specifications:

Since Zone Minder will potentially be saving lots of video/images, the biggest components necessary for this server will be network and storage capacity. Other items to take into consideration are the number of cameras, the quality of the images/video being sent to the server, number of users connecting to the Zone Minder system, and viewing the streams live through the Zone Minder system.


Important: The server being used in this guide, while old, is not the typical home user system. Please make sure to thoroughly evaluate usage requirements before setting up a Zone Minder system.

Zone Minder wiki article for Specs: https://wiki.zoneminder.com/How_Many_Cameras

System Specs:

  • 1 HP DL585 G1 (4 x Dual core CPU’s)
  • RAM: 18 GB
  • 1 x 1Gbps network connections for IP cameras
  • 1 x 1Gbps network connection for management
  • Local Storage: 4 x 72GB in RAID 10 (OS only; ZM images/video will be offloaded later)
  • 1 x 1.2 TB HP MSA20 (Storage of Images/Videos)

Changing ZoneMinder Image/Video Storage Location

Important: This step is only necessary for those wishing to move the storage of the images/videos that Zone Minder captures to another location. If this is not desired, skip to the next article: Setting up Monitors [Coming Soon].

As mentioned in the lab setup, this particular box has very little local storage but does have a large external storage array attached for video and images. In this case, the images and videos will be offloaded to that larger storage location. The image below shows the lab server’s setup.

List ZoneMinder Devices

List ZoneMinder Devices

From the output of ‘lsblk’, two sets of hard drives can be seen. The second disk array (c1d0) is the large storage shelf attached to this server and ultimately where Zone Minder will be instructed to store images/videos.

To start the process, Zone Minder needs to be stopped using the following command.

# systemctl stop zoneminder.service

Once Zone Minder has been stopped, the storage location needs to be partitioned and prepared. Many tools can accomplish this task but this guide will use ‘cfdisk’.

The drive can be setup to use the whole space as one mount point or a separate partition can be used for each of the two Zone Minder directories. This guide will walk through using two partitions. (Be sure to change the ‘/dev/cciss/c1d0’ portion in the commands below to the proper device path for different environments).

# cfdisk /dev/cciss/c1d0

Once in the ‘cfdisk’ utility, select the partitioning type (dos is usually sufficient). The next prompt will be display the current partitions on the disk.

In this case, there aren’t any so they will need to be created. Planning ahead, video from the cameras is likely to take up more space than images and with 1.1 Terabytes available, a 75/25 or so split should be more than sufficient for this system.

Partition 1: ~825GB
Partition 2: ~300GB
cfdisk Partition Utility

cfdisk Partition Utility

Cfdisk is text/keyboard based, use the arrow keys to highlight the ‘[ New ]’ menu and hit the ‘Enter’ key. This will prompt the user for the size of the new partition.

ZoneMinder New Partition Size

ZoneMinder New Partition Size

The next prompt will be for the partition type. Since only two partitions will be needed in this install, ‘Primary’ will be sufficient.

Set ZoneMinder Partition Type Primary

Set ZoneMinder Partition Type Primary

Once the partition type has been selected, cfdisk will refresh the current changes waiting to be written to the disk. The remaining free space needs to be partitioned as well by highlighting the free space and then clicking on the ‘[ New ]’ menu option again.

Cfdisk Partition Menu

Cfdisk Partition Menu

Cfdisk will automatically place the remaining free space amount in the size prompt. In this example the rest of the disk space is going to be the second partition anyways. Pressing the ‘Enter’ key, cfdisk will use the rest of the storage capacity.

ZoneMinder Second Partition

ZoneMinder Second Partition

Since there will only be 2 partitions on this particular unit, another primary partition can be used. Simply press the ‘Enter’ key to continue selecting a primary partition.

Once cfdisk has completed updating the changes to the partitions, the changes will need to actually be written to the disk. In order to accomplish this, there is a ‘[ Write ]’ menu option down at the bottom of the screen.

Use the arrows to move over to highlight this option and hit the ‘Enter’ key. Cfdisk will prompt for confirmation so simply type ‘yes’ and hit the ‘Enter’ key one more time.

Write Changes to Partitions

Write Changes to Partitions

Once confirmed, highlight and click ‘[ Quit ]’ to exit out of cfdisk. Cfdisk will exit and it is suggested that user’s double check the partitioning process with the ‘lsblk’ command.

Notice in the image below the two partitions, ‘c1d0p1’ and ‘c1d0p2’, show up in the output of lsblk confirming that the system recognizes the new partitions.

# lsblk
Confirm ZoneMinder Partitions

Confirm ZoneMinder Partitions

Now that the partitions are ready, they need to have a filesystem written to them and mounted to the Zone Minder system. The filesystem type chosen is user preference but many people have opted to use non-journaled file-systems like ext2 and accept the potential loss of data for the speed increase.

This guide will use ext4 due to the addition of a journal and the reasonable write performance and superior read performance over ext2/3. Both partitions can be formated with the ‘mkfs’ tool using the following commands:

# mkfs.ext4 -L "ZM_Videos" /dev/cciss/c1d0p1
# mkfs.ext4 -L "ZM_Images" /dev/cciss/c1d0p2

The next step in the process is to persistently mount the new partitions so Zone Minder can use the space to store images and videos. In order to make the storage available at boot time, entries will need to be added to ‘/etc/fstab’ file.

To accomplish this task, the ‘blkid’ command with root privileges will be used.

# blkid /dev/cciss/c1d0p1 >> /etc/fstab
# blkid /dev/cciss/c1d0p2 >> /etc/fstab

Important: Make ABSOLUTELY sure the double ‘>>’ symbol is used! This will write the correct UUID information to the persistent mounts file.

This will need some clean up though. Enter the file with a text editor to clean up the necessary information. The information in red is what ‘blkid’ inserted into the file. As it stands initially, the formatting won’t be correct for the system to properly mount the directories.

ZoneMinder Partitions Mounted

ZoneMinder Partitions Mounted

The item in red is what the two ‘blkid’ commands above placed into the file. The important parts in this output are the UUID and TYPE strings. The format of the fstab file is vary specific. The format will need to be as follows:

<UUID:> <mount point> <Fileystem type> <Options> <Dump> <fsck>

For this instance, the mount point will be the two Zone Minder directories for images and recorded events, the file-system – ext4, default options, 0 – dump, and 2 for the filesystem check.

The image below illustrates how this particular system’s fstab file is setup. Pay attention to the removed double quotes around the file-system type and UUID!

Zone Minder Directories

Zone Minder Directories

The first directory ‘/var/cache/zoneminder/events’ is the larger partition on this system and will be used for recorded events. The second directory ‘/var/cache/zoneminder/images’ will be used for still images. Once the proper changes have been made to this file, save the changes and exit the text editor.

Zone Minder will have already created these folders during installation so they should be removed before mounting the new partitions.

Caution, if following this article on an already running/configured Zone Minder system, this command will remove ALL imagery already stored! It is suggested you move the files instead.

Remove these directories with the following command:

# rm -rf /var/cache/zoneminder/{events,images}

Once the directories have been removed, the folders need to be created and mounted on the new disk space. The permissions also need set to allow Zone Minder to read/write to the new storage locations. Use the following commands to accomplish this:

# mount -a # mkdir /var/cache/zoneminder/{images,events} # mount -a (May be needed to mount directories after re-creation on new disk)
# chown www-data:www-data /var/cache/zoneminder/{images,events}
# chmod 750 /var/cache/zoneminder/{images,events}
Create Zone Minder Directories

Create Zone Minder Directories

The final step is to start the Zone Minder process again and begin further configuration of the system! Use the following command to start Zone Minder again and pay attention to any errors that may display.

# systemctl start zoneminder.service

At this point, Zone Minder will be storing the images/events to the much larger MSA storage system attached to this server. Now it is time to begin further configuration of Zone Minder.

The next article will look at how to configure Zone Minder monitors to interface with the IP cameras in this lab setup.

How to Block Ping ICMP Requests to Linux Systems

Some system administrators often block ICMP messages to their servers in order to hide the Linux boxes to outside world on rough networks or to prevent some kind of IP flooding and denial of service attacks.

The most simple method to block ping command on Linux systems is by adding an iptables rule, as shown in the below example. Iptables is a part of Linux kernel netfilter and, usually, is installed by default in most Linux environments.

# iptables -A INPUT --proto icmp -j DROP
# iptables -L -n -v [List Iptables Rules]

Another general method of blocking ICMP messages in your Linux system is to add the below kernel variable that will drop all ping packets.

# echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all

In order to make the above rule permanent, append following line to /etc/sysctl.conf file and, subsequently, apply the rule with sysctl command.

# echo “net.ipv4.icmp_echo_ignore_all = 1” >> /etc/sysctl.conf # sysctl -p


In Debian-based Linux distributions that ship with UFW application firewall, you can block ICMP messages by adding the following rule to /etc/ufw/before.rules file, as illustrated in the below excerpt.

-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
Block Ping ICMP Request in UFW Firewall

Block Ping ICMP Request in UFW Firewall

Restart UFW firewall to apply the rule, by issuing the below commands.

# ufw disable && ufw enable

In CentOS or Red Hat Enterprise Linux distribution that use Firewalld interface to manage iptables rules, add the below rule to drop ping messages.

# firewall-cmd --zone=public --remove-icmp-block={echo-request,echo-reply,timestamp-reply,timestamp-request} --permanent # firewall-cmd --reload

In order to test if the firewall rules had been successfully applied in all the cases discussed above, try to ping your Linux machine IP address from a remote system. In case ICMP messages are blocked to your Linux box, you should get a “Request timed out” or “Destination Host unreachable” messages on the remote machine.

How to Install Skype 8.13 on Debian, Ubuntu and Linux Mint

‘,
enableHover: false,
enableTracking: true,
buttons: { twitter: {via: ‘tecmint’}},
click: function(api, options){
api.simulateClick();
api.openPopup(‘twitter’);
}
});
jQuery(‘#facebook’).sharrre({
share: {
facebook: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
click: function(api, options){
api.simulateClick();
api.openPopup(‘facebook’);
}
});
jQuery(‘#googleplus’).sharrre({
share: {
googlePlus: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
urlCurl: ‘https://www.tecmint.com/wp-content/themes/tecmint/js/sharrre.php’,
click: function(api, options){
api.simulateClick();
api.openPopup(‘googlePlus’);
}
});
jQuery(‘#linkedin’).sharrre({
share: {
linkedin: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
buttons: {
linkedin: {
description: ‘How to Install Skype 8.13 on Debian, Ubuntu and Linux Mint’,media: ‘https://www.tecmint.com/wp-content/uploads/2012/11/Install-Skype-on-Debian-Ubuntu-Linux-Mint.png’ }
},
click: function(api, options){
api.simulateClick();
api.openPopup(‘linkedin’);
}
});
// Scrollable sharrre bar, contributed by Erik Frye. Awesome!
var shareContainer = jQuery(“.sharrre-container”),
header = jQuery(‘#header’),
postEntry = jQuery(‘.entry’),
$window = jQuery(window),
distanceFromTop = 20,
startSharePosition = shareContainer.offset(),
contentBottom = postEntry.offset().top + postEntry.outerHeight(),
topOfTemplate = header.offset().top;
getTopSpacing();
shareScroll = function(){
if($window.width() > 719){ var scrollTop = $window.scrollTop() + topOfTemplate,
stopLocation = contentBottom – (shareContainer.outerHeight() + topSpacing);
if(scrollTop > stopLocation){
shareContainer.offset({top: contentBottom – shareContainer.outerHeight(),left: startSharePosition.left});
}
else if(scrollTop >= postEntry.offset().top-topSpacing){
shareContainer.offset({top: scrollTop + topSpacing, left: startSharePosition.left});
}else if(scrollTop 1024)
topSpacing = distanceFromTop + jQuery(‘.nav-wrap’).outerHeight();
else
topSpacing = distanceFromTop;
}
});
]]>

How to Install Skype 8.13 on CentOS, RHEL and Fedora

‘,
enableHover: false,
enableTracking: true,
buttons: { twitter: {via: ‘tecmint’}},
click: function(api, options){
api.simulateClick();
api.openPopup(‘twitter’);
}
});
jQuery(‘#facebook’).sharrre({
share: {
facebook: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
click: function(api, options){
api.simulateClick();
api.openPopup(‘facebook’);
}
});
jQuery(‘#googleplus’).sharrre({
share: {
googlePlus: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
urlCurl: ‘https://www.tecmint.com/wp-content/themes/tecmint/js/sharrre.php’,
click: function(api, options){
api.simulateClick();
api.openPopup(‘googlePlus’);
}
});
jQuery(‘#linkedin’).sharrre({
share: {
linkedin: true
},
template: ‘{total}’,
enableHover: false,
enableTracking: true,
buttons: {
linkedin: {
description: ‘How to Install Skype 8.13 on CentOS, RHEL and Fedora’,media: ‘https://www.tecmint.com/wp-content/uploads/2018/01/Install-Skype-in-CentOS-RHEL-Fedora.png’ }
},
click: function(api, options){
api.simulateClick();
api.openPopup(‘linkedin’);
}
});
// Scrollable sharrre bar, contributed by Erik Frye. Awesome!
var shareContainer = jQuery(“.sharrre-container”),
header = jQuery(‘#header’),
postEntry = jQuery(‘.entry’),
$window = jQuery(window),
distanceFromTop = 20,
startSharePosition = shareContainer.offset(),
contentBottom = postEntry.offset().top + postEntry.outerHeight(),
topOfTemplate = header.offset().top;
getTopSpacing();
shareScroll = function(){
if($window.width() > 719){ var scrollTop = $window.scrollTop() + topOfTemplate,
stopLocation = contentBottom – (shareContainer.outerHeight() + topSpacing);
if(scrollTop > stopLocation){
shareContainer.offset({top: contentBottom – shareContainer.outerHeight(),left: startSharePosition.left});
}
else if(scrollTop >= postEntry.offset().top-topSpacing){
shareContainer.offset({top: scrollTop + topSpacing, left: startSharePosition.left});
}else if(scrollTop 1024)
topSpacing = distanceFromTop + jQuery(‘.nav-wrap’).outerHeight();
else
topSpacing = distanceFromTop;
}
});
]]>